题解 | #字符串加密#
字符串加密
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); } }