标签:
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 24135 | Accepted: 8789 |
Description
Input
Output
Sample Input
i is has have be my more contest me too if award # me aware m contest hav oo or i fi mre #
Sample Output
me is correct aware: award m: i my me contest is correct hav: has have oo: too or: i is correct fi: i mre: more me
#include <iostream> #include<cstdio> #include<cstring> using namespace std; int i,j,n; char ch[10002][20]; char str[20]; bool ok(int i) { int l=strlen(ch[i]); for(int j=0;j<l;j++) if (ch[i][j]!=str[j]) return 0; return 1; } int main() { n=0; while(scanf("%s",&ch[++n])) { if (ch[n][0]==‘#‘) break; } n--; while(scanf("%s",&str)) { if (str[0]==‘#‘) break; int l2=strlen(str); int flag=0; for(i=1;i<=n;i++) { int l1=strlen(ch[i]); if(l1==l2 && ok(i)) { printf("%s is correct\n",str); flag=1; break; } } if (flag) continue; printf("%s:",str); for(i=1;i<=n;i++) { int l1=strlen(ch[i]); if (l1==l2-1)//删除 { int tflag=0,k=0; for(j=0;j<l1;j++) { if (str[k]==ch[i][j]) k++; else { tflag++; if (str[k+1]!=ch[i][j]) {tflag=2; break;} else k=k+2; } } if (tflag<2) printf(" %s",ch[i]); //若不同在最后 } if (l1==l2) //替换 { int tflag=0,k=0; for(j=0;j<l1;j++) { if (str[k]!=ch[i][j]) tflag++; k++; } if (tflag==1) printf(" %s",ch[i]); } if (l1==l2+1)//插入 { int tflag=0,k=0; for(j=0;j<l1;j++) { if (str[k]==ch[i][j]) k++; else { tflag++; if (str[k]!=ch[i][j+1]) {tflag=2; break;} } } if (tflag<2) printf(" %s",ch[i]);//若不同在最后tflag=0 } } printf("\n"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/stepping/p/5673961.html