rambless

字符串加密

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

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String key = in.nextLine();
            String str = in.nextLine();
            //key中重复字母只保留第一个
            String keys = "";
            for(int i=0; i<key.length(); i++) {
                if(keys.indexOf(key.substring(i, i+1))==-1) {
                    keys += key.substring(i, i+1);
                }
            }
            //构造字母表
            List<Character> sma = new ArrayList<>(26);
            List<Character> big = new ArrayList<>(26);
            char[] arr = keys.toCharArray();
            for(int i=0; i<arr.length; i++) {
                if(arr[i]>=65 && arr[i]<=90) {
                    sma.add((char)(arr[i] + 32));
                    big.add(arr[i]);
                } else {
                    sma.add(arr[i]);
                    big.add((char)(arr[i] - 32));
                }
            }
            for(int i=65; i<91; i++) {
                if(!big.contains((char)i)) {
                    big.add((char)i);
                    sma.add((char)(i+32));
                }
            }

            char[] array = str.toCharArray();
            String result = "";
            for(int i=0; i<array.length; i++) {
                char a;
                if(array[i]>=65 && array[i]<=90) {
                    a = big.get(array[i]-65);
                } else {
                    a = sma.get(array[i]-97);
                }
                result += a + "";
            }

            System.out.println(result);
        }
    }
}

全部评论

相关推荐

01-14 12:34
门头沟学院 C++
牛马人的牛马人生:太暖心了啊 配环境是真烦
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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