您的位置:首页 > 其它

洛谷1071 潜伏者 NOIP2009 字符串模拟

2016-11-12 10:03 183 查看

传送门

相当水的一道字符串模拟题目,开个数组存一下对应关系以及判断冲突,最后模拟输出即可,注意一下字符转数字的过程即可

#include <cstdio>
#include <cstring>
#include <algorithm>

const int maxn = 100000 + 5000;
char s1[maxn], s2[maxn], s[maxn];
int vis[30];
int tr[30];

int main () {
scanf("%s %s %s", s1, s2, s);
int len1 = strlen(s1);
for (int i = 0; i < len1; i++) {
int tx = (int)(s1[i] - 'A') + 1;
int ty = (int)(s2[i] - 'A') + 1;
if ((vis[ty] != tx && vis[ty] != 0) || (tr[tx] != ty && tr[tx] != 0)) {
printf("Failed");
exit(0);
}
vis[ty] = tx;
tr[tx] = ty;
}
for (int i = 1; i <= 26; i++)
if (vis[i] == 0) {
printf("Failed");
exit(0);
}
int len = strlen(s);
for (int i = 0; i < len; i++) {
printf("%c", tr[s[i] - 'A' + 1] - 1 + 'A');
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: