查找 poj1035

来源:互联网 发布:securecrt linux版 编辑:程序博客网 时间:2024/05/17 23:58
#include<iostream>#include<string>using namespace std;typedef struct fun{char s[16];int len;}rr;fun a[10005],n; char ss[17];int len1;void del(int i){int j,k,sign=0;j=0;k=0;while(j<a[i].len){if(sign>=2)//都已经跳出去了break;if(a[i].s[j]==ss[k]){j++;k++;}else{sign++;k++;}}if(sign==0 || sign==1)cout<<" "<<a[i].s;}void place(int i){int j,sign=0;for(j=0; j<a[i].len; j++){if(sign>=2)break;if(a[i].s[j]!=ss[j])sign++;}if(sign==1)cout<<" "<<a[i].s;}void sert(int i){int j,k,sign=0;j=0;k=0;while(k<len1 && j<a[i].len){if(sign>=2)break;if(a[i].s[j]==ss[k]){j++;k++;}else{j++;sign++;}}if(sign==0 || sign==1)cout<<" "<<a[i].s;}int main(){int i,n;n=0;while(1)//首先输入的数据的{cin>>a[n].s;if(strcmp(a[n].s,"#")==0)break;a[n].len=strlen(a[n].s);n++;} int sign;while(1){cin>>ss;if(strcmp(ss,"#")==0)break;sign=0;len1=strlen(ss);//第一次判断是否有相同的for(i=0 ; i<n; i++){ if(a[i].len==len1 && strcmp(a[i].s,ss)==0){       sign=1;break;}}if(sign==1){cout<<ss<<" is correct"<<endl;continue;}cout<<ss<<":";for(i=0; i<n; i++){if(a[i].len+1==len1)del(i);if(a[i].len==len1)place(i);if(a[i].len==len1+1)sert(i); }cout<<endl;}return 0;}

原创粉丝点击