题解 | #字符串加密#

字符串加密

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

#include <stdio.h>
#include <string.h>

// 1. 得到秘钥,和原文
// 2. 制作密码表
//     2.1 用字母表进行标记,为1则已经出现过
//     2.2 快慢指针去重
// 3. 替换输出
//     3.1 数组下标对应字母序号

int main() {
    
    char key[110] = {0};
    char input[110] = {0};

    gets(key);
    gets(input);

    int alpha[26] = {0};
    int slow = 0;
    int fast = 0;
    int len = strlen(key);

    for(; fast < len; ++ fast)
    {
        if(!alpha[key[fast]-'a'])
        {
            alpha[key[fast]-'a'] = 1;
            key[slow] = key[fast];
            ++ slow;
        }
    }
    //将剩余字母补充到key中
    for(int i = 0; i < 26; ++ i)
    {
        if(!alpha[i])
        {
            key[slow] = 'a' + i;
            ++ slow;
        }
    }

    len = strlen(input);
    for(int i = 0; i < len; ++ i)
    {
        putchar(key[input[i]-'a']);
    }


    return 0;
}

全部评论

相关推荐

10-11 17:30
湖南大学 C++
我已成为0offer的糕手:羡慕
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务