题解 | #矩阵元素相乘#

扎金花

http://www.nowcoder.com/practice/f4e2fc37f9a54787a7c2846873e8b827

这个题的测试用例有点怪,所以要小小的处理一下,否则一个用例也通不过。借鉴以为大佬的思路并改正如下:


public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {
            String[] str = in.nextLine().split("\\s+");
            for (int i = 0; i < str.length; i = i + 2) {
                String str1 = str[i];
                String str2 = str[i + 1];
                int[] num1 = charToInt(str1);
                int[] num2 = charToInt(str2);
                Arrays.sort(num1);
                Arrays.sort(num2);
                int grades1 = getGrades(num1);
                int grades2 = getGrades(num2);
                int res = 0 ;
                if (grades1 > grades2) {
                    res = 1;
                } else if (grades1 < grades2) {
                    res = -1;
                } else {
                    res = 0;
                }
                System.out.print(res + " ");
            }
            System.out.println();
        }
    }

    public static int getGrades(int[] arr) {
        if (arr[0] == arr[1] && arr[1] == arr[2]) {
            return arr[2] * 100000;
        } else if (arr[0] + 1 == arr[1] && arr[1] + 1 == arr[2]) {
            return arr[2] * 10000;
        } else if (arr[0] == arr[1]) {
            return arr[0] * 1000 + arr[2];
        } else if (arr[1] == arr[2]) {
            return arr[1] * 1000 + arr[0];
        } else {
            return arr[2] * 100 + arr[1] * 10 + arr[0];
        }
    }

    public static int[] charToInt(String str) {
        int[] arr = new int[3];
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            switch (str.charAt(i)) {
                case 'J':
                    arr[count++] = 11;
                    break;
                case 'Q':
                    arr[count++] = 12;
                    break;
                case 'K':
                    arr[count++] = 13;
                    break;
                case '1':
                    arr[count++] = 10;
                    break;
                case '0':
                    break;
                default:
                    arr[count++] = str.charAt(i) - '0';
                    break;
            }
        }
        return arr;
    }
}
全部评论

相关推荐

02-21 23:34
已编辑
厦门大学 Java
神哥不得了:神哥来啦~首先你的bg的话应该算是很好的了,可以把其他删掉,不需要手搓项目呀,直接找网上的项目看懂就行,第一个项目的话虽然和JAVA没有关系,但是他的星数很多,说明你的编程能力还是很强的,我觉得第一个项目是可以放上去的,但是第二个项目的话建议还是再换一个高质量的项目,感觉如果你再把高频top 50的八股再巩固几遍,完全有机会在没有实习的情况下,从暑期实习的大厂,机会还是很大的,注意别看一些假高频八股就行
点赞 评论 收藏
分享
吾族血脉,自吾始立铁律:凡我子孙,胆敢研习计算机之术者,当受七窍流血之刑!若见Python之书,必遭雷殛;若触Java代码,定为不孝!键盘鼠标准入族谱秽物录,显示器乃摄魂邪镜祖祠前当立戒碑:"二进制者,断子绝孙之道也!"算法者,乱我族心智之毒也!数据结构,毁我门风之刃也!倘有逆子偷装&nbsp;vscode,即按祖规捆于祠堂梁柱,令其DEBUG至死不得解脱!今颁天条三则:壹)三代血亲不得报考计算机系违者削去辈分,永世称码奴贰)族中幼童须背《戒算经》"if-else咒,switch符,皆是断头术"叁)凡见子侄讨论编程者须即刻砸其电脑,焚其书籍泼黑狗血于键盘之上!太祖母口谕:"吾宁要文盲孙,不要程序员!"尔...
好吃的薯饼:姐妹这不是我们计算机系吧,我们计算机系的都在言情小说里当黑客大佬,各种竞赛拿奖拿到手软,公司系统道路监控随便入侵。身体线条非常优美,挺拔的站姿十分端正,给人以强壮有内涵的感觉。脸庞轮廓深刻,五官分明透露着对太阳底下最光辉的职业的向往和坚定,尤其是那双深邃的眼睛,写满了对代码和计算机系统的热情和无限的活力。我们计算机系是天之骄子、明日之星,人手一个博士学位不然高中电脑老师都当不上。组会的时候,面对导师和同事的疑难问题,也能够回答自如。我们总是把高高的发际线当做荣耀的象征。妈咪这不素我们计算机系吧,集美集帅怎么只会写hello world?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务