题解 | #字符串合并处理# 暴力转换

字符串合并处理

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

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (sc.hasNext()) {
            String s1 = sc.next();
            String s2 = sc.next();
            //合并
            char[] chs = (s1 + s2).toCharArray();
            //奇数位
            char[] r1 = new char[chs.length / 2];
            //偶数位
            char[] r2 = new char[chs.length - r1.length];

            //按序添加到奇偶列表
            int n = 0;//奇数
            int m = 0;//偶数
            for (int i = 0; i < chs.length; i++) {
                if (i % 2 == 0) {
                    r2[m++] = chs[i];
                } else {
                    r1[n++] = chs[i];
                }
            }
            //排序
            Arrays.sort(r1);
            Arrays.sort(r2);
            //重新组合
            for (int i = 0, j = 0, k = 0; i < chs.length; i++) {
                //如果是偶数下标,则从偶数数组中取
                if (i % 2 == 0) {
                    chs[i] = r2[j++];
                } else {
                    chs[i] = r1[k++];
                }
            }
            //转换
            String result = change(new String(chs));
            System.out.println(result);
        }
    }


    //字符转换
    public static String change(String str) {
        char[] chs = str.toCharArray();
        //方法一:暴力计算,空间换时间
        for (int i = 0; i < chs.length; i++) {
            char c = chs[i];
            if ( c == '0') {
                chs[i] = '0';
            } else if (c == '1') {
                chs[i] = '8';
            } else if (c == '2') {
                chs[i] = '4';
            } else if (c == '3') {
                chs[i] = 'C';
            } else if (c == '4') {
                chs[i] = '2';
            } else if (c == '5') {
                chs[i] = 'A';
            } else if (c == '6') {
                chs[i] = '6';
            } else if (c == '7') {
                chs[i] = 'E';
            } else if (c == '8') {
                chs[i] = '1';
            } else if (c == '9') {
                chs[i] = '9';
            } else if (c == 'a' || c == 'A') {
                chs[i] = '5';
            } else if (c == 'b' || c == 'B') {
                chs[i] = 'D';
            } else if (c == 'c' || c == 'C') {
                chs[i] = '3';
            } else if (c == 'd' || c == 'D') {
                chs[i] = 'B';
            } else if (c == 'e' || c == 'E') {
                chs[i] = '7';
            } else if (c == 'f' || c == 'F') {
                chs[i] = 'F';
            } else {
                //其他值
                continue;
            }
        }
        String result = String.valueOf(chs);
        return result;
    }
}

全部评论

相关推荐

09-13 08:41
服装/纺织设计
那一天的Java_J...:你第一次参加面试吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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