题解 | #字符串加密#

字符串加密

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

暴力解法

// 1 删除key的重复字符 HashMap

// 2 得到解码密钥 StringBuilder

// 3 对应关系转换 HashMap

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String key = in.nextLine();
        String encode_str = in.nextLine();
        ArrayList<String> list = new ArrayList<>();
        // 1 删除key的重复字符 HashMap 
        // 2 得到解码密钥      
        // 3 对应关系转换
        for(int i=0;i<key.length();i++){
            if(!list.contains(key.substring(i,i+1))){
                list.add(key.substring(i,i+1));
            }
        }
        int size = list.size();
        String a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        StringBuilder builder = new StringBuilder();
        for(int i=0;i<size;i++){
            builder.append(list.get(i));
        }
        String regrex = "[^"+builder.toString().toUpperCase()+"]";
        StringBuilder builder1 = new StringBuilder();
        for(int i=0;i<26;i++){
            if(a.substring(i,i+1).matches(regrex))
                builder1.append(a.substring(i,i+1));
        }
        String c = builder.toString().toUpperCase()+builder1.toString();
        Map<String,String> map = new HashMap<String,String>();
        for(int i=0;i<26;i++){
            map.put(a.substring(i,i+1),c.substring(i,i+1));
        }
        for(int i=0;i<encode_str.length();i++){
            if(encode_str.charAt(i)<=90&&encode_str.charAt(i)>=65)
                System.out.print(map.get(encode_str.substring(i,i+1)));
            else if(encode_str.charAt(i)<=122&&encode_str.charAt(i)>=97){
                System.out.print(String.valueOf(map.get(encode_str.substring(i,i+1).toUpperCase())).toLowerCase());
            }else
                System.out.print(encode_str.substring(i,i+1));
        }
    }
}

菜鸡一枚勿喷

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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