https://leetcode-cn.com/problems/largest-number-after-digit-swaps-by-parity/
class Solution {
public int largestInteger(int num) {
ArrayList<Integer> odds=new ArrayList<>();
ArrayList<Integer> evens=new ArrayList<>();
String snum=String.valueOf(num);
for(int i=0;i<snum.length();i++){
char c=snum.charAt(i);
int n=c-'0';
if(n%2==1){
odds.add(n);
}
else{
evens.add(n);
}
}
Collections.sort(odds,(a,b)->(b-a));
Collections.sort(evens,(a,b)->(b-a));
/*
从高位到低位遍历数字,从降序序列中选最大的、性质相同的数替换
*/
int res=0;
for(int i=0;i<snum.length();i++){
char c=snum.charAt(i);
int n=c-'0';
res=res*10;
if(n%2==1){
res+=odds.get(0);
odds.remove(0);
}
else{
res+=evens.get(0);
evens.remove(0);
}
}
return res;
}
}