题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3?tpId=37&tqId=21259&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=
使用set去重
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
private static HashSet<String> oldAlphabet = new LinkedHashSet<String>();
private static HashSet<String> newAlphabet = new LinkedHashSet<String>();
static {
int charTemp = 'a';
for (int i = 1; i <= 26; i++) {
oldAlphabet.add((char)charTemp + "");
charTemp++;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String key = in.nextLine();
String Plaintext = in.nextLine();
HashSet<String> strSet = new LinkedHashSet<String>();
HashMap<String,String> map = new HashMap<String,String>();
String result = "";
//去重放入Set中
for (int i = 0; i < key.length(); i++) {
strSet.add(key.charAt(i) + "");
}
//开始创造新字母表
for (String zimu : strSet) {
newAlphabet.add(zimu);
oldAlphabet.remove(zimu);
}
for (String zimu : oldAlphabet) {
newAlphabet.add(zimu);
}
//形成映射关系
int charTemp = 'a';
for (String zimu : newAlphabet) {
map.put((char)charTemp+"", zimu);
charTemp++;
}
//创建、输出result
for (int i = 0; i < Plaintext.length(); i++) {
result += map.get(Plaintext.charAt(i) + "");
}
System.out.print(result);
}
}

