/* 成语纠错
* 作者:国风崽
* 不知道对还是错,请大家赐教
*/
#include<cstdio>
#include<string>
using namespace std;
int main(){
int n,m;
scanf("%d%d", &n, &m);
char a[n][400];
char b[m+1][9];
for(int i=0;i<n;++i){
scanf("%s",a[i]);
}
for(int i=1;i<m+1;++i){
scanf("%s",b[i]);
}
scanf("%s",b[0]);//错误的成语存放在b[0]中
char c[9];
for(int i=1;i<m+1;++i){
strcpy(c,b[0]);//由于b[0]不能修改,所以用c来代替b[0].
for(int j=0;j<8;j=j+2){
if(b[0][j]!=b[i][j]||b[0][j+1]!=b[i][j+1]){
c[j]=b[i][j];
c[j+1]=b[i][j+1];
if(strcmp(c,b[i])==0){//若相等则搜索看是否在同一类中
for(int k=0;k<n;++k){
int length=strlen(a[k]);
int b1=0,b2=0;
for(int l=0;l<length;l=l+2){
if(a[k][l]==b[0][j]&&a[k][l+1]==b[0][j+1]){
b1=1;
}
if(a[k][l]==b[0][j]&&a[k][l+1]==b[0][j+1]){
b2=1;
}
if(b1==1&&b2==1){//在同一类则输出修改结果,退出程序
for(int h=0;h<8;h=h+2){
printf("%c%c", b[i][h], b[i][h+1]);
}
return 0;
}
}
}
}else{
break;//若不相等则退出当前成语比较,进入下一比较
}
}
}
}
return 0;
}
* 作者:国风崽
* 不知道对还是错,请大家赐教
*/
#include<cstdio>
#include<string>
using namespace std;
int main(){
int n,m;
scanf("%d%d", &n, &m);
char a[n][400];
char b[m+1][9];
for(int i=0;i<n;++i){
scanf("%s",a[i]);
}
for(int i=1;i<m+1;++i){
scanf("%s",b[i]);
}
scanf("%s",b[0]);//错误的成语存放在b[0]中
char c[9];
for(int i=1;i<m+1;++i){
strcpy(c,b[0]);//由于b[0]不能修改,所以用c来代替b[0].
for(int j=0;j<8;j=j+2){
if(b[0][j]!=b[i][j]||b[0][j+1]!=b[i][j+1]){
c[j]=b[i][j];
c[j+1]=b[i][j+1];
if(strcmp(c,b[i])==0){//若相等则搜索看是否在同一类中
for(int k=0;k<n;++k){
int length=strlen(a[k]);
int b1=0,b2=0;
for(int l=0;l<length;l=l+2){
if(a[k][l]==b[0][j]&&a[k][l+1]==b[0][j+1]){
b1=1;
}
if(a[k][l]==b[0][j]&&a[k][l+1]==b[0][j+1]){
b2=1;
}
if(b1==1&&b2==1){//在同一类则输出修改结果,退出程序
for(int h=0;h<8;h=h+2){
printf("%c%c", b[i][h], b[i][h+1]);
}
return 0;
}
}
}
}else{
break;//若不相等则退出当前成语比较,进入下一比较
}
}
}
}
return 0;
}