#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;
}
查找 poj1035
最新推荐文章于 2020-06-05 21:31:35 发布