通过比较字符串来得到答案

把数组排成最小的数

http://www.nowcoder.com/questionTerminal/8fecd3f8ba334add803bf2a06af1b993

public String PrintMinNumber(int [] numbers) {
        ArrayList<char[]> list = new ArrayList<>();
        String result = "";
        for (int i=0;i<numbers.length;i++){
            String s = ""+numbers[i];
            list.add(s.toCharArray());

        }
        list.sort(new Comparator<char[]>() {
            @Override
            public int compare(char[] o1, char[] o2) {
                int minlength = o1.length<o2.length?o1.length:o2.length;
                for(int i=0;i<minlength;i++){
                    if (o1[i]>o2[i])
                        return 1;
                    else if (o1[i]<o2[i])
                        return -1;
                }
                if (o1.length==o2.length)
                    return 0;
                if (o1.length<o2.length) {
                    while(minlength<o2.length && o1[0]==o2[minlength])
                        minlength++;
                    if (minlength<o2.length && o1[0]<o2[minlength])
                        return -1;
                    return 1;
                }else {
                    while(minlength<o1.length && o1[0]==o1[minlength])
                        minlength++;
                    if (minlength<o1.length && o2[0]<o1[minlength])
                        return 1;
                    return -1;
                }

            }
        });
        for (int i=0;i<numbers.length;i++) {
            result+=String.valueOf(list.get(i));
            System.out.println(Arrays.toString(list.get(i)));
        }
        return result;
    }
全部评论

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务