题解 | #字符串加密#

字符串加密

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

import java.util.Arrays; import java.util.HashSet; import java.util.Scanner; import java.util.Set;

public class Main {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner sc = new Scanner(System.in);
	while (sc.hasNextLine()) {
		String key = sc.nextLine();
		String inputStr = sc.nextLine();
		
		Set set = new HashSet();
		char[] keyArr = key.toCharArray();
		for(int i = 0;i<keyArr.length;i++) {
			if(!set.add(keyArr[i])) {
				// 这里将所有重复的字母都用 空格代替,后面替换空格
			     keyArr[i]=' ';	
			}
		}
		// 题目中要求只能输入小写字母,故不考虑大写字母
		// 
		String newKey =new String(keyArr);
		// 替换空格
		newKey = newKey.replace(" ", "");
		
		String originLetterStr = "abcdefghijklmnopqrstuvwxyz";
		String letterStr = "abcdefghijklmnopqrstuvwxyz";
		for(int i=0;i<newKey.length();i++) {
			String oneLetter = newKey.substring(i, i+1);
			if(letterStr.indexOf(oneLetter)!=-1) {
				letterStr = letterStr.replace(oneLetter, "");
			}
		}
		
		String newLetterStr = newKey + letterStr;
		StringBuilder sb = new StringBuilder();
		for(int i=0;i<inputStr.length();i++) {
			String oneLetter = inputStr.substring(i, i+1);
			int index = originLetterStr.indexOf(oneLetter);
			if(index !=-1) {
				char ch = newLetterStr.charAt(index);
				sb.append(ch);
			}
		}
		System.out.println(sb.toString());
		
	}
}

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务