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