题解 | #字符串加密#
字符串加密
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;
}
腾讯成长空间 5849人发布