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

字符串合并处理

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        str = str.replace(" ", "");
        char[] chars = str.toCharArray();
        ArrayList<Character> list1 = new ArrayList<>();
        ArrayList<Character> list2 = new ArrayList<>();
        for (int i = 0; i < chars.length; i++) {
            if (i % 2 == 0) {
                list1.add(chars[i]);
            } else {
                list2.add(chars[i]);
            }
        }
        Collections.sort(list1);
        Collections.sort(list2);
        for (int i = 0, j = 0, k = 0; i < chars.length; i++) {
            if (i % 2 == 0) {
                chars[i] = list1.get(j++);
            } else {
                chars[i] = list2.get(k++);
            }
        }
        for (int i = 0; i < chars.length; i++) {
            String s = String.valueOf(chars[i]);
            if (s.matches("[0-9a-fA-F]")) {
                StringBuilder sb = new StringBuilder();
                String s1 = Integer.toBinaryString(Integer.parseInt(s, 16));
                sb.append("0000");
                sb.append(s1);
                sb.reverse();
                String substring = sb.substring(0, 4);
                int i1 = Integer.parseInt(substring, 2);
                char c1;
                if (i1 > 9) {
                    c1 = (char)((int)'A' + (i1 - 10));
                    System.out.print(c1);
                } else {
                    System.out.print(i1);
                }
            } else {
                System.out.print(chars[i]);
            }
        }

    }

}

全部评论

相关推荐

被普调的六边形战士很高大:项目经历貌似和专业或者求职方向没大关系?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务