题解 | #学英语#

学英语

https://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {//写了4个小时的屎山代码,请慎重查看
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String s = scanner.nextLine();
            String[] strings = spThree(s);
//            System.out.println(Arrays.toString(strings));
            ArrayList<String> sgood = new ArrayList<>();
            String zs[]=new String[]{"","thousand","million","billion"};
            for (int i = 0; i <strings.length; i++) {
                String s1 = nTl(strings[i]);
//                System.out.println(s1);
                if (s1.equals(" ")||s1.equals("")){
                    continue;
                }
                sgood.add(s1+" "+zs[i]);
            }
//            System.out.println(sgood);
            String se="";
            for (int i = sgood.size()-1; i >=0; i--) {
                se=se+sgood.get(i)+" ";
            }
            System.out.println(se);
        }
    }

    public static String[] spThree(String s) {//拆分数字方法
        char[] cy = s.toCharArray();
        String ss = "";
        for (int i = cy.length - 1; i >= 0; i--) {
            ss = ss + cy[i];
        }
        ArrayList<String> st = new ArrayList<>();
        for (int i = 0; i < ss.length(); i++) {
            String[] split = ss.split("");
            if ((i + 1) % 3 == 0) {
                st.add(split[i]);
                st.add(" ");
            } else {
                st.add(split[i]);
            }
        }
        String s1 = "";
        for (int i = 0; i < st.size(); i++) {
            s1 = s1 + st.get(i);
        }
        String[] split = s1.split(" ");
        for (int i = 0; i < split.length; i++) {
            String s2 = split[i];
            String s3 = "";
            String[] split1 = s2.split("");
            for (int j = split1.length - 1; j >= 0; j--) {
                s3 = s3 + split1[j];
            }
            split[i] = s3;
        }
        return split;
    }

    public static String nTl(String s) {//分类
        String s1 = "";
        String s2 = "";
        String s3 = "";
        if (s.length() == 1) {
            switch (s) {
                case "0":
                    s1 = "zero";
                    break;
                case "1":
                    s1 = "one";
                    break;
                case "2":
                    s1 = "two";
                    break;
                case "3":
                    s1 = "three";
                    break;
                case "4":
                    s1 = "four";
                    break;
                case "5":
                    s1 = "five";
                    break;
                case "6":
                    s1 = "six";
                    break;
                case "7":
                    s1 = "seven";
                    break;
                case "8":
                    s1 = "eight";
                    break;
                case "9":
                    s1 = "nine";
                    break;
            }
            return s1;
        } else if (s.length() == 2||(s.length()==3 && String.valueOf(s.charAt(0)).equals("0"))) {
            if (s.length()==3){
                s=s.substring(1);
            }
            if (String.valueOf(s.charAt(0)).equals("1")) {
                switch (String.valueOf(s.charAt(1))) {
                    case "0":
                        s2 = "ten";
                        break;
                    case "1":
                        s2 = "eleven";
                        break;
                    case "2":
                        s2 = "twelve";
                        break;
                    case "3":
                        s2 = "thirteen";
                        break;
                    case "4":
                        s2 = "fourteen";
                        break;
                    case "5":
                        s2 = "fifteen";
                        break;
                    case "6":
                        s2 = "sixteen";
                        break;
                    case "7":
                        s2 = "seventeen";
                        break;
                    case "8":
                        s2 = "eighteen";
                        break;
                    case "9":
                        s2 = "nineteen";
                        break;
                }
                return s2;
            } else {
                switch (String.valueOf(s.charAt(0))) {
                    case "2":
                        s2 = "twenty";
                        break;
                    case "3":
                        s2 = "thirty";
                        break;
                    case "4":
                        s2 = "forty";
                        break;
                    case "5":
                        s2 = "fifty";
                        break;
                    case "6":
                        s2 = "sixty";
                        break;
                    case "7":
                        s2 = "seventy";
                        break;
                    case "8":
                        s2 = "eighty";
                        break;
                    case "9":
                        s2 = "ninety";
                        break;
                }
                switch (String.valueOf(s.charAt(1))) {
                    case "1":
                        s1 = "one";
                        break;
                    case "2":
                        s1 = "two";
                        break;
                    case "3":
                        s1 = "three";
                        break;
                    case "4":
                        s1 = "four";
                        break;
                    case "5":
                        s1 = "five";
                        break;
                    case "6":
                        s1 = "six";
                        break;
                    case "7":
                        s1 = "seven";
                        break;
                    case "8":
                        s1 = "eight";
                        break;
                    case "9":
                        s1 = "nine";
                        break;
                }
                if (s1.equals("")){
                    return s2;
                }
                if (s2.equals("")){
                    return s1;
                }
                return s2+" "+s1;
            }
        } else if (s.length() == 3) {
            if (!String.valueOf(s.charAt(0)).equals("0")) {
                switch (String.valueOf(s.charAt(0))) {
                    case "1":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "one hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "one hundred";
                        }
                        break;
                    case "2":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "two hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "two hundred";
                        }
                        break;
                    case "3":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "three hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "three hundred";
                        }
                        break;
                    case "4":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "four hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "four hundred";
                        }
                        break;
                    case "5":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "five hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "five hundred";
                        }
                        break;
                    case "6":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "six hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "six hundred";
                        }
                        break;
                    case "7":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "seven hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "seven hundred";
                        }
                        break;
                    case "8":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "eight hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "eight hundred";
                        }
                        break;
                    case "9":
                        if (!String.valueOf(s.charAt(2)).equals("0")||(Integer.valueOf(s.substring(1))%10==0)) {
                            s3 = "nine hundred and";
                        }
                        if (Integer.valueOf(s)%100==0){
                            s3 = "nine hundred";
                        }
                }
                if (String.valueOf(s.charAt(1)).equals("1")) {
                    switch (String.valueOf(s.charAt(2))) {
                        case "0":
                            s2 = "ten";
                            break;
                        case "1":
                            s2 = "eleven";
                            break;
                        case "2":
                            s2 = "twelve";
                            break;
                        case "3":
                            s2 = "thirteen";
                            break;
                        case "4":
                            s2 = "fourteen";
                            break;
                        case "5":
                            s2 = "fifteen";
                            break;
                        case "6":
                            s2 = "sixteen";
                            break;
                        case "7":
                            s2 = "seventeen";
                            break;
                        case "8":
                            s2 = "eighteen";
                            break;
                        case "9":
                            s2 = "nineteen";
                            break;
                    }
                    return s3+" "+s2;
                } else {
                    switch (String.valueOf(s.charAt(1))) {
                        case "2":
                            s2 = "twenty";
                            break;
                        case "3":
                            s2 = "thirty";
                            break;
                        case "4":
                            s2 = "forty";
                            break;
                        case "5":
                            s2 = "fifty";
                            break;
                        case "6":
                            s2 = "sixty";
                            break;
                        case "7":
                            s2 = "seventy";
                            break;
                        case "8":
                            s2 = "eighty";
                            break;
                        case "9":
                            s2 = "ninety";
                            break;
                    }
                    switch (String.valueOf(s.charAt(2))) {
                        case "1":
                            s1 = "one";
                            break;
                        case "2":
                            s1 = "two";
                            break;
                        case "3":
                            s1 = "three";
                            break;
                        case "4":
                            s1 = "four";
                            break;
                        case "5":
                            s1 = "five";
                            break;
                        case "6":
                            s1 = "six";
                            break;
                        case "7":
                            s1 = "seven";
                            break;
                        case "8":
                            s1 = "eight";
                            break;
                        case "9":
                            s1 = "nine";
                            break;
                    }
                    if (!s2.equals("0")&&!s2.equals("")) {
                        return s3 + " " + s2 + " " + s1;
                    } else if (s1.equals("")) {
                        return s3;
                    } else {
                        return s3 + " " + s1;
                    }
                }
            }
        }
        return null;
    }
}

全部评论

相关推荐

时间线:&nbsp;1.4-1.5:&nbsp;boss&nbsp;牛客&nbsp;官网&nbsp;实习僧海投了两天,&nbsp;感觉确实没啥招人的啊,&nbsp;心里凉了一半.1.6:&nbsp;中午快手约面,&nbsp;下午字节hr飞书私聊约面,&nbsp;当时想着第一次面大厂感觉三个过一个一面就已经赢了.1.7:&nbsp;下午&nbsp;3点大厂处女面,&nbsp;哈哈面试官是重邮红岩的直接保送;&nbsp;5点快手一面,&nbsp;我说这个是我的第二次大厂面试,&nbsp;面试官问要是拿到字节和快手选择哪个,&nbsp;我说昨天看了一晚上快手百分百选快手哈哈哈.&nbsp;晚上5.30字节约二面,&nbsp;快手约二面,&nbsp;小红书约一面.1.8:&nbsp;下午2点快手二面,&nbsp;聊天面体验非常好(当天电话确认入职时间);&nbsp;4点字节二面这次不是校友了,&nbsp;然后有一个CSS实现switch效果的忘记属性咋写了,&nbsp;感觉危了;&nbsp;7.30&nbsp;问字节hr是不是挂了;&nbsp;9点开始小红书一面,&nbsp;难死我了,&nbsp;但我还是笑着面完了,&nbsp;然后卸载了小红书,&nbsp;但是过了一会会小红书hr约二面,&nbsp;遂下回来了字节约三面.1.9:&nbsp;下午2点字节三面,&nbsp;依旧聊天+算法,&nbsp;自己太菜了有一个写错了,&nbsp;面完感觉又危了;&nbsp;5点面小红书20min结束(offer审批);5.30又去问字节hr是不是挂了,&nbsp;hr小姐姐说干嘛用一个句式,&nbsp;我说手写题又又又没写出来😂,&nbsp;2min后约hr面;8.30&nbsp;快手offer总结,&nbsp;自己运气好遇到了好公司好部门好面试官,&nbsp;字节剪映&nbsp;快手电商&nbsp;小红书支付的面试体验都非常好,&nbsp;不会的题会带你一步一步思考,&nbsp;流程也非常快全部都是当天推进,&nbsp;小红书是以分钟为单位推进.&nbsp;&nbsp;面经以及细节等我慢慢整理,&nbsp;&nbsp;以及保佑所有的审批不要出问题,&nbsp;我是真怕最后全过了0offer😂bg:&nbsp;重邮&nbsp;大数据&nbsp;蓝山工作室&nbsp;一段非大厂实习
独角仙梦境:这是真👻了
找实习记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务