阿里4.15笔试
4.15阿里笔试练手(因为无hc)
三道编程题:
1.九键根据按数字次数输出字母:a了
2.四子棋:a了(应该),但是写的太慢了,写完没交上去
3.树的两个节点价值差值最小:面向结果编程,10%
以下为代码:
第一题:
第二题:
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String s=in.nextLine();
for(int i=0;i<s.length();i++){
int count=0;
while (i+1<s.length() && s.charAt(i)==s.charAt(i+1)){
count++;
i++;
}
if(i+1>=s.length()){
break;
}
if(s.charAt(i)=='2'){
count%=3;
char c='A';
if(count==1){
c='A'+1;
}else if(count==2){
c='A'+2;
}
System.out.print(c);
}
if(s.charAt(i)=='3'){
count%=3;
char c='D';
if(count==1){
c='D'+1;
}else if(count==2){
c='D'+2;
}
System.out.print(c);
}
if(s.charAt(i)=='4'){
count%=3;
char c='G';
if(count==1){
c='G'+1;
}else if(count==2){
c='G'+2;
}
System.out.print(c);
}
if(s.charAt(i)=='5'){
count%=3;
char c='J';
if(count==1){
c='J'+1;
}else if(count==2){
c='J'+2;
}
System.out.print(c);
}
if(s.charAt(i)=='6'){
count%=3;
char c='M';
if(count==1){
c='M'+1;
}else if(count==2){
c='M'+2;
}
System.out.print(c);
}
if(s.charAt(i)=='7'){
count%=4;
char c='P';
if(count==1){
c='P'+1;
}else if(count==2){
c='P'+2;
}else if(count==3){
c='P'+3;
}
System.out.print(c);
}
if(s.charAt(i)=='8'){
count%=3;
char c='T';
if(count==1){
c='T'+1;
}else if(count==2){
c='T'+2;
}
System.out.print(c);
}
if(s.charAt(i)=='9'){
count%=4;
char c='W';
if(count==1){
c='W'+1;
}else if(count==2){
c='W'+2;
}else if(count==3){
c='W'+3;
}
System.out.print(c);
}
}
}
}
第二题:
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
String sss = in.nextLine();
String[][] num = new String[n][m];
for (int i = 0; i < n; i++) {
String s = in.nextLine();
num[i] = s.split("");
}
int result = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (i + 3 >= n || j + 3 >= m) {
break;
} else if (("r".equals(num[i][j])
&& "r".equals(num[i][j + 1])
&& "r".equals(num[i][j + 2])
&& "r".equals(num[i][j + 3]))
|| ("r".equals(num[i][j])
&& "r".equals(num[i + 1][j + 1])
&& "r".equals(num[i + 2][j + 2])
&& "r".equals(num[i + 3][j + 3]))
|| ("r".equals(num[i][j])
&& "r".equals(num[i + 1][j])
&& "r".equals(num[i + 2][j])
&& "r".equals(num[i + 3][j]))) {
result = 1;
break;
} else if (("p".equals(num[i][j])
&& "p".equals(num[i][j + 1])
&& "p".equals(num[i][j + 2])
&& "p".equals(num[i][j + 3]))
|| ("p".equals(num[i][j])
&& "p".equals(num[i + 1][j + 1])
&& "p".equals(num[i + 2][j + 2])
&& "p".equals(num[i + 3][j + 3]))
|| ("p".equals(num[i][j])
&& "p".equals(num[i + 1][j])
&& "p".equals(num[i + 2][j])
&& "p".equals(num[i + 3][j]))) {
result = 2;
break;
}
}
}
if (result == 0) {
System.out.println("to be continued");
} else if (result == 1) {
System.out.println("kou");
} else if (result == 2) {
System.out.println("yukari");
}
}
}

查看10道真题和解析