题解 | #字符串加密#

字符串加密

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

import java.util.*;

// 比别人的多了20行...但是运行效率还行,自己看得懂就行
//题目和给的样例不一致,这段代码包含了输入有空格的情况
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String key = sc.nextLine();
            String info = sc.nextLine();
            System.out.println(encode(key,info));
        }
    }
    public static String encode(String keyString info){
        List<CharacterkeyChars = new ArrayList<>();
        char[] chars = key.toCharArray();
        for(int i = 0;i<chars.length;i++){
            if(keyChars.contains(chars[i])){
                continue;
            }
            else{
                keyChars.add(chars[i]);
            }
        } 
        char[] alphabets = "abcdefghijklmnopqrstuvwxyz".toCharArray();
        char[] codeBook = new char[26];
        for(int i = 0;i<keyChars.size();i++){
            codeBook[i] = keyChars.get(i);
        }
        for(int i=0,j=keyChars.size();i<26;i++){
            if(keyChars.contains(alphabets[i])){
                continue;
            }
            else{
                codeBook[j++] = alphabets[i];
            }
        }
        
        StringBuilder code = new StringBuilder();
        boolean isCap = true;
        int number = 0;
        char[] infoChars = info.toCharArray();
        for(int i = 0;i<infoChars.length;i++){
            if(Character.isLetter(infoChars[i])){
                if(infoChars[i]>='a'&&infoChars[i]<='z'){
                    isCap = false;
                }
                char infochar = Character.toLowerCase(infoChars[i]);
                number = infoChars[i]-'a';
                if(isCap){
                    code.append(Character.toUpperCase(codeBook[number]));
                }
                else{
                    code.append(codeBook[number]);
                }
            }
            else{
                code.append(infoChars[i]);
            }
        }
        return code.toString();
    }   
}
全部评论

相关推荐

点赞 评论 收藏
分享
昨天 12:33
安徽大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务