#include<iostream> #include<cmath> #include<cstring> using namespace std; int main() { char ch[2223]; while(scanf("%s",ch)) { if(strcmp(ch,"END")==0) break; int m; scanf("%d",&m); for(int i=0;i<m;i++) { char lux[2223]; scanf("%s",lux); int l=strlen(lux); if(l==strlen(ch)) { int j; for(j=0;j<l;j++) if(lux[j]!=ch[j]) { printf("%d %d change %c\n",i+1,j+1,ch[j]); break; } if(j==l) printf("%d OK!\n",i+1); } else if(l>strlen(ch)) { int j; for(j=0;j<strlen(ch);j++) if(lux[j]!=ch[j]) //如果重复的在中间字符 { while(lux[j]==lux[j-1]&&j!=0) j--; //找到第一个不相同的字符 printf("%d %d delete %c\n",i+1,j+1,lux[j]); break; } if(j==strlen(ch)) //如果重复的是最后的字符 { while(lux[j]==lux[j-1]&&j!=0) j--; //找到第一个不相同的字符 printf("%d %d delete %c\n",i+1,j+1,lux[j]); } } else { int j; for(j=0;j<l;j++) if(lux[j]!=ch[j]) //逐一比较 { while(ch[j]==ch[j-1]&&j!=0) j--; //找到第一个不相同的字符 printf("%d %d insert %c\n",i+1,j+1,ch[j]); break; } if(j==l) //如果缺少的是最后的元素,往前找到相同的元素中的第一个 { while(ch[j]==ch[j-1]&&j!=0) j--; printf("%d %d insert %c\n",i+1,j+1,ch[j]); } } } } return 0; } |
Double click to view unformatted code.