#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define N 10010
char dict[N][20];
int result[N];
int len;
int check( char a[20], char b[20] )
{
int l1= strlen(a), l2= strlen(b);
int num= 0;
if( l1== l2 )
{
for( int i= 0; i< l1; ++i )
if( a[i]!= b[i] && ++num>= 2 ) return -1;
if( num== 0 ) return 2;
}
else if( l1< l2 )
{
for( int i= 0, j= 0; i< l1 && j< l2; ++i, ++j )
if( a[i]!= b[j] )
{
if( ++num>= 2 ) return -1;
i--;
}
}
else
{
for( int i= 0, j= 0; i< l1 && j< l2; ++i, ++j )
if( a[i]!= b[j] )
{
if( ++num>= 2 ) return -1;
j--;
}
}
return 1;
}
int main()
{
char str[20];
while( scanf("%s", str), strcmp( str, "#" )!= 0 ) strcpy( dict[len++], str );
while( scanf("%s", str), strcmp( str, "#" )!= 0 )
{
int size= strlen( str );
int tt= 0;
bool equal= false;
for( int i= 0; i< len; ++i )
{
int ll= strlen( dict[i] );
if( abs( ll- size )< 2 )
{
int value= check( dict[i], str );
if( value== 1 ) result[tt++]= i;
else if( value== 2 )
{
printf("%s is correct\n", str);
equal= true;
break;
}
}
}
if( !equal )
{
printf("%s:", str );
for( int i= 0; i< tt; ++i )
printf(" %s", dict[ result[i] ]);
printf("\n");
}
}
return 0;
}
posted on 2008-10-30 17:36
Darren 阅读(237)
评论(0) 编辑 收藏 引用