6037. 按奇偶性交换后的最大数字
题目描述:
解法:分别记录奇数、偶数,然后排序,最后将奇数、偶数放到合适位置
class Solution {
public int largestInteger(int num) {
List<Integer> odd = new ArrayList<>();//记录偶数元素
List<Integer> even = new ArrayList<>();//记录奇数元素
int temp = num;
while(temp != 0){
int r = temp % 10;
if(r % 2 == 0) {
even.add(r);
} else {
odd.add(r);
}
temp /= 10;
}
//排序
Collections.sort(even);
Collections.sort(odd);
int i = 0, j = 0;
StringbBuilder sb = new StringBuilder();
// 还放在原先的位置,这次是有顺序的。
while(num != 0){
int r = num % 10;
if(r % 2==0){
sb.append(even.get(i++));
} else {
sb.append(odd.get(j++));
}
num /= 10;
}
sb.reverse();
return Integer.valueOf(sb.toString());
}
}