b站笔试为什么第二道用全排列比较和比较器都不能ac呀

83.3

#笔试题目#
全部评论
要转化成字符串,long类型都爆了
点赞 回复 分享
发布于 2019-08-20 21:51
我也用的比较器,AC 了     public static void bilibiliFun2(List list) {         list.sort(new Com());         StringBuffer sb = new StringBuffer();         for (int i = 0; i < list.size(); i++) {             sb.append(list.get(i));         }         System.out.println(sb.toString());     }     static class Com implements Comparator<Integer> {         @Override         public int compare(Integer o1, Integer o2) {             int a = Integer.valueOf(String.valueOf(o1).charAt(0));             int b = Integer.valueOf(String.valueOf(o2).charAt(0));             int i = 1;             while (a == b) {                 if (String.valueOf(o1).length() > i && String.valueOf(o2).length() > i) {                     a = Integer.valueOf(String.valueOf(o1).charAt(i));                     b = Integer.valueOf(String.valueOf(o2).charAt(i));                 } else {                     if (String.valueOf(o1).length() < String.valueOf(o2).length()                         && Integer.valueOf(String.valueOf(o1).charAt(0)) < Integer.valueOf(String.valueOf(o2).charAt(String.valueOf(o2).length() - 1))) {                         return -1;                     } else if (String.valueOf(o1).length() > String.valueOf(o2).length()                             && Integer.valueOf(String.valueOf(o2).charAt(0)) > Integer.valueOf(String.valueOf(o1).charAt(String.valueOf(o1).length() - 1))) {                         return -1;                     } else {                         return 1;                     }                 }                 i++;             }             return a - b;         }     }
点赞 回复 分享
发布于 2019-08-20 21:40
只要比较就可以AC
点赞 回复 分享
发布于 2019-08-20 21:38
贴代码
点赞 回复 分享
发布于 2019-08-20 21:36

相关推荐

牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

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