阿里巴巴04.15研发岗算法答题解析

我真的无语了。

写题写的太投入,完全不记得时间,写完的算法大题忘记提交。
晚上八点半结束的考试,老子愣是差了一秒钟从idea粘贴到提交面板上。
在这里插入图片描述
我不知道该说什么了。
怪我是个菜鸡。写的那么慢。

言归正传:
题目大意是
在这里插入图片描述
在这里插入图片描述
eg:
输入:11222566679
输出:CJOPW

按照我的套路,就是统计连续出现的数字个数然后添加进去。

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //接收输入的值
        String in = sc.next()+"0";
        //用于装载字母
        ArrayList<String> res=new ArrayList();

        int count2=0;
        int count3=0;
        int count4=0;
        int count5=0;
        int count6=0;
        int count7=0;
        int count8=0;
        int count9=0;

        //对每一个数值做分析
        for (int i = 0; i <in.length() ; i++) {
            if(i!=0&&(Integer.parseInt(in.charAt(i)+"")!=Integer.parseInt(in.charAt(i-1)+""))){
                //本次出现的数字与上一个不相同
                if(Integer.parseInt(in.charAt(i-1)+"")==2){
                    res.add(char2(count2));
                    count2=0;
                }
                if(Integer.parseInt(in.charAt(i-1)+"")==3){
                    res.add(char3(count3));
                    count3=0;
                }
                if(Integer.parseInt(in.charAt(i-1)+"")==4){
                    res.add(char4(count4));
                    count4=0;
                }
                if(Integer.parseInt(in.charAt(i-1)+"")==5){
                    res.add(char5(count5));
                    count5=0;
                }
                if(Integer.parseInt(in.charAt(i-1)+"")==6){
                    res.add(char6(count6));
                    count6=0;
                }
                if(Integer.parseInt(in.charAt(i-1)+"")==7){
                    res.add(char7(count7));
                    count7=0;
                }
                if(Integer.parseInt(in.charAt(i-1)+"")==8){
                    res.add(char8(count8));
                    count8=0;
                }
                if(Integer.parseInt(in.charAt(i-1)+"")==9){
                    res.add(char9(count9));
                    count9=0;
                }

            }

            char c = in.charAt(i);
            int i1 = Integer.parseInt(c+"");

            if(i1==1){
                continue;
            }
            if(i1==2){
                count2=count2+1;
            }
            if(i1==3){
                count3=count3+1;
            }
            if(i1==4){
                count4=count4+1;
            }
            if(i1==5){
                count5=count5+1;
            }
            if(i1==6){
                count6=count6+1;
            }
            if(i1==7){
                count7=count7+1;
            }
            if(i1==8){
                count8=count8+1;
            }
            if(i1==9){
                count9=count9+1;
            }

        }
        System.out.println(res);
    }

    public static String char9(int count9) {
        int i = count9 % 4;
        if(i==1){
            return "W";
        }
        if(i==2){
            return "X";
        }
        if(i==3){
            return "Y";
        }
        if(i==0){
            return "Z";
        }
        return "";
    }

    public static String char8(int count8) {
        int i = count8 % 3;
        if(i==1){
            return "T";
        }
        if(i==2){
            return "U";
        }
        if(i==0){
            return "V";
        }
        return "";
    }

    public static String char7(int count7) {
        int i = count7 % 4;
        if(i==1){
            return "P";
        }
        if(i==2){
            return "Q";
        }
        if(i==3){
            return "R";
        }
        if(i==0){
            return "S";
        }
        return "";
    }

    public static String char6(int count6) {
        int i = count6 % 3;
        if(i==1){
            return "M";
        }
        if(i==2){
            return "N";
        }
        if(i==0){
            return "O";
        }
        return "";
    }

    public static String char5(int count5) {
        int i = count5 % 3;
        if(i==1){
            return "J";
        }
        if(i==2){
            return "K";
        }
        if(i==0){
            return "L";
        }
        return "";
    }

    public static String char4(int count4) {
        int i = count4 % 3;
        if(i==1){
            return "G";
        }
        if(i==2){
            return "H";
        }
        if(i==0){
            return "I";
        }
        return "";
    }

    public static String char3(int count3) {
        int i = count3 % 3;
        if(i==1){
            return "D";
        }
        if(i==2){
            return "E";
        }
        if(i==0){
            return "F";
        }
        return "";
    }

    public static String char2(int count2){
        int i = count2 % 3;
        if(i==1){
            return "A";
        }
        if(i==2){
            return "B";
        }
        if(i==0){
            return "C";
        }
        return "";
    }
}

真的不难。
可是我这个手抖的傻逼,连提交都赶不上趟。暴风哭泣了。

今年与阿里无缘了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值