1 条题解
-
0
#include <bits/stdc++.h> using namespace std; char s[1100], ss[110], a[25][110]; int b[25], p[1100]; int ys[256]; bool pd(char c1, char c2) { if (c1 == c2) return 1; if (ys[c1] == ys[c2] && ys[c1] != 0) return 1; return 0; } int main() { memset(ys, 0, sizeof(ys)); memset(b, 0, sizeof(b)); for (char c = 'A'; c <= 'Z'; c++) ys[c] = c - 'A' + 1; for (char c = 'a'; c <= 'z'; c++) ys[c] = c - 'a' + 1; scanf("%s", s + 1); int len = strlen(s + 1); int n; scanf("%d", &n); scanf("%s", ss); for (int i = 1; i <= n; i++) scanf("%s", a[i] + 1), b[i] = strlen(a[i] + 1); memset(p, 0, sizeof(p)); for (int x = 1; x <= len; x++) { for (int i = 1; i <= n; i++) if (x + b[i] - 1 <= len) { bool bk = 1; for (int k = 1; k <= b[i]; k++) if (pd(a[i][k], s[x + k - 1]) == 0) bk = 0; if (bk == 1) { p[x] = b[i]; x = x + p[x] - 1; break; } } } for (int x = 1; x <= len; x++) { if (p[x] == 0) printf("%c", s[x]); else { printf("%s", ss); x = x + p[x] - 1; } } return 0; }
- 1
信息
- ID
- 860
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 91
- 已通过
- 28
- 上传者