题解 | #字符串合并处理#

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        String str = a + b;
        ArrayList<Character> w1 = new ArrayList<>();
        ArrayList<Character> w2 = new ArrayList<>();
        for(int i = 0; i < str.length(); i++){
            if(i % 2 ==0){
                w1.add(str.charAt(i));
            }else{
                w2.add(str.charAt(i));
            }
        }
        Collections.sort(w1);
        Collections.sort(w2);
        StringBuilder s = new StringBuilder();
        int x  = 0;
        while(x < w1.size() || x < w2.size()){
            if(x < w1.size()) s.append(w1.get(x));
            if(x < w2.size()) s.append(w2.get(x));
            x++;
        }
        str = s.toString();
        StringBuilder res =new StringBuilder();
        char[] word = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    
        for(int i = 0; i < str.length(); i++){
            char t = str.charAt(i);
            if(Character.isDigit(t)){
                int m = t -'0';
                StringBuilder code =new StringBuilder(
                    String.format("%04d",Integer.parseInt(Integer.toBinaryString(m))));             
                res.append(word[Integer.parseInt(code.reverse().toString(),2)]);
            }else if(t <= 'F' && t >= 'A'){
                int m = t -'A' + 10;
                StringBuilder code =new StringBuilder(Integer.toBinaryString(m));
                res.append(word[Integer.parseInt(code.reverse().toString(),2)]);
            }else if(t <= 'f' && t >='a'){                
                int m = t -'a' + 10;
                StringBuilder code =new StringBuilder(Integer.toBinaryString(m));                
                res.append(word[Integer.parseInt(code.reverse().toString(),2)]);
            }else{
                res.append(t);
            }
        }
        System.out.println(res.toString());
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 12:26
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务