题解 | #字符串加密#
字符串加密
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));
}
}
}
菜鸡一枚勿喷