📄 2426916_ac_109ms_372k.c
字号:
#include <stdio.h>
#include <string.h>
char dic[10001][30];
int len[10001];
int check2(char a[],char b[])
{
int i, j;
for(i = 0; b[i]!='\0'; i++)
{
if(a[i]==b[i])
continue;
else
if(strcmp(&a[i+1],&b[i+1])==0)
return 1;
else
{
for(j = i+1; b[j]!='\0'; j++)
if(a[j]==b[j])
continue;
else
{
if(a[i]==b[j]&&a[j]==b[i])
return strcmp(&a[j+1],&b[j+1])==0;
else
return 0;
}
}
}
return 1;
}
int check1(char a[],char b[])
{
int i;
for(i = 0; a[i]!='\0'; i++)
if(a[i]==b[i])
continue;
else
return strcmp(&a[i],&b[i+1])==0;
return 1;
}
int main()
{
char tmp[30], output[30];
int n, j, q, i, l, mark;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
scanf("%s",dic[i]);
len[i] = strlen(dic[i]);
}
scanf("%d",&q);
for(j = 0; j < q; j++)
{
mark = 0;
scanf("%s",tmp);
printf("%s",tmp);
l = strlen(tmp);
for(i = 0; i < n; i++)
{
if(len[i]==l)
{
if(strcmp(dic[i],tmp)==0)
{
printf(" is correct\n");
goto con;
}
}
if(mark)
continue;
if(len[i]==l&&check2(dic[i],tmp))
{
mark = 1;
strcpy(output,dic[i]);
}
if(len[i]==l-1&&check1(dic[i],tmp))
{
mark = 1;
strcpy(output,dic[i]);
}
if(len[i]==l+1&&check1(tmp,dic[i]))
{
mark = 1;
strcpy(output,dic[i]);
}
}
if(mark)
printf(" is a misspelling of %s\n",output);
else
printf(" is unknown\n");
con:
;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -