其实做一个排序,这个序列中,通过ab,ba谁大这种方式来决定a在前还是b在前
public static class Comp implements Comparator<String>{ public int compare(String o1,String o2){ String r1 = o1 + o2; String r2 = o2 + o1; int t = 0; for(int i = 0;i<r1.length();i++){ char i1 = r1.charAt(i); char i2 = r2.charAt(i); if(i1>i2){ return -1; }else if(i2>i1){ return 1; } } return 1; } } public String solve (int[] nums) { //贪心,让大数尽可能往前放 String[] numStrs = new String[nums.length]; for(int i = 0;i<nums.length;i++){ numStrs[i] = nums[i]+""; } Arrays.sort(numStrs,new Comp()); StringBuilder builder = new StringBuilder(); for(String numStr:numStrs){ builder.append(numStr); } String res = builder.toString(); int N = res.length(); int pre = 0; while(pre<N&&res.charAt(pre)=='0'){//前面的0去掉 pre++; } return res.substring(Math.min(pre,N-1),N);//别去多了,最少得留个0 }