hihocoder-1740-替换函数
#1740 : 替换函数
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
已知替换函数replace(c1, c2)的作用是把一个字符串中所有的c1字符替换成c2字符。
请你判断能否使用replace函数将字符串S变成D。
你可以调用replace函数任意多次。
输入
输入包含多组数据。
第一行包含一个整数T,代表数据组数。
每组数据包含两行,分别是字符串S和D。
1 ≤ T ≤ 10
S和T都只包含小写字母,且1 ≤ |S| = |D| ≤ 1000
输出
对于每组数据输出YES或者NO,表示能否使用replace函数将字符串S变成D。
- 样例输入
-
2 aaabb ccccc aaabbbbb cccccddd
- 样例输出
-
YES NO
简单的对应题目。S中每一个相同的字符,都有D中有一样的对应字符。
#include <cstdio> #include <cstdlib> #include <cstring> const int MAXN = 1000 + 10; int main(){ freopen("in.txt", "r", stdin); int m, mp[128]; bool ans; char S[MAXN], D[MAXN]; scanf("%d", &m); while(m--) { getchar(); scanf("%s", S); getchar(); scanf("%s", D); if(strlen(S) != strlen(D)){ ans = false; }else{ ans = true; memset(mp, 0, sizeof(mp)); for(int i=0; i<strlen(S); ++i){ if(mp[S[i]] != 0){ if( mp[S[i]] != D[i] ){ ans = false; break; } }else{ mp[ S[i] ] = D[i]; } } } if(ans){ printf("YES "); }else{ printf("NO "); } } return 0; }