题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
我这种方法 效率和内存都超过了90+,我觉得理解起来也是比较容易跌,大家有兴趣可以看一看找找灵感
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input1 = new String(br.readLine());
String input2 = new String(br.readLine());
//先记录一个标准顺序表
String word = new String("abcdefghijklmnopqrstuvwxyz");
//再来一个待修改的顺序表
String word2 = word;
StringBuffer newword = new StringBuffer();
for(int i = 0 ; i<input1.length();i++){
if(word2.contains(String.valueOf(input1.charAt(i)) )){
//如果有,就删除,再给新表加上
word2 = word2.replace(String.valueOf(input1.charAt(i)),"");
newword.append(String.valueOf(input1.charAt(i)));
}
}
//把删除之后剩余部分拿了过来接上
newword.append(word2);
//遍历输入的第二行,与标准字母排序,找到对应的单词,记录下标准的单词序号
//从新单词表中按照这个序号,找到对应的字母,添加到新的字符串中
StringBuffer newword2 = new StringBuffer();
for(int i = 0 ;i <input2.length();i++){
for(int j = 0 ;j<newword.length();j++){
if(input2.charAt(i)==word.charAt(j)){
newword2.append(String.valueOf(newword.charAt(j)));
}
}
}
System.out.println(newword2);
}
}
查看11道真题和解析

