1 条题解
-
1
把字符串转换成整数数组,然后按照题意模拟即可。数组v用来存放对应关系,
v[x]=y
表示原文x对应密文y,其中x和y是整数。在模拟过程中,如果发现对应关系冲突,或者遗漏,说明计算失败,输出Failed
。否则根据v数组计算出新的密文即可。核心代码
memset(v, -1, sizeof(v)); bool ok = true; for (int i = 0, sz = a.size(); i < sz; i++) { int cur = a[i] - 'A'; int tar = b[i] - 'A'; if (v[cur] == -1) { v[cur] = tar; } else if (v[cur] != tar) { ok = false; break; } } for (int i = 0; i < 26; i++) { if (v[i] == -1) { ok = false; break; } for (int j = 0; j < i; j++) { if (v[i] == v[j]) { ok = false; } } } if (!ok) { cout << "Failed" << endl; } else { for (int i = 0, sz = c.size(); i < sz; i++) { cout << char('A' + v[c[i] - 'A']); } cout << endl; }
- 1
信息
- ID
- 679
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 83
- 已通过
- 29
- 上传者