阿里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");
    }
  }
}


#阿里笔试##笔试题目##笔经#
全部评论
最后一题只剩了十分钟。。我直接println(1000000000),对了百分之十。。
3 回复 分享
发布于 2022-04-15 20:57
第二题过了60%一直在找问题在哪,,最后30秒第三题输出0骗分,过了90%。。。。。。。。。
2 回复 分享
发布于 2022-04-15 21:02
第三题直接出0骗分,第二题a了,随机数试了一下都能过60,真就练手了
点赞 回复 分享
发布于 2022-04-16 10:16
第3题过了90%,不知道为啥
点赞 回复 分享
发布于 2022-04-15 21:05

相关推荐

深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
评论
2
11
分享

创作者周榜

更多
牛客网
牛客企业服务