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\n");
}else{
printf("NO\n");
}
}
return 0;
}