题解 | #字符串加密#

字符串加密

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);
    }
}

全部评论

相关推荐

烤点老白薯:这种东西到时候公众号搜索都有的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务