0
点赞
收藏
分享

微信扫一扫

6037. 按奇偶性交换后的最大数字

倪雅各 2022-04-13 阅读 38

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());
    }
}
举报

相关推荐

0 条评论