其实做一个排序,这个序列中,通过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
} 
京公网安备 11010502036488号