题意

  每个单词,如果字典里存在,输出”该单词 is correct“;如果字典里不存在,但是可以通过删除、添加、替换一个字母得到字典里存在的单词,那就输出
“该单词:修正的单词”,并按字典里的顺序输出;如果都不存在,那就输出“单词:”就好。。。

分析

  存下字典单词们和它们的长度,对每个要查找的单词,暴力扫描字典单词,根据单词长度,选择操作并检查。

代码

#include<stdio.h>
#include<cstring>
char c[],dictionary[][],words[][],print[];
int n,num,len,correct,l[],printlen;
void add(int i)
{
print[printlen++]=' ';
for(int p=; p<l[i]; p++)
print[printlen+p]=dictionary[i][p];
printlen+=l[i];
}
int main()
{
while(scanf("%s",c)&&c[]!='#')
{
for(len=; c[len]; len++)
dictionary[num][len]=c[len];
l[num]=len;
num++;
} while(scanf("%s",words[n])&&words[n][]!='#')
{
printf("%s",words[n]);
for(len=; words[n][len]; len++);
correct=printlen=;
memset(print,,sizeof(print));
for(int i=; i<num&&!correct; i++)
{
if(l[i]>=len-)
{
int j=;
while(j<len&&dictionary[i][j] ==words[n][j]) j++;
if(j==len&&l[i]==len)
correct=;
else
{
if(l[i]==len)
{
while(j<len&&dictionary[i][j+] ==words[n][j+])j++;//替换
if(j==len)
add(i);
}
if(l[i]==len-)
{
while(j<len-&&dictionary[i][j] ==words[n][j+])j++;//删除
if(j==len-)
add(i);
}
if(l[i]==len+)
{
while(j<len&&dictionary[i][j+] ==words[n][j])j++;//添加
if(j==len)
add(i);
}
}
}
}
if(correct) printf(" is correct\n");
else printf(":%s\n",print);
n++;
}
return ;
}

【POJ 1035】Spell checker的更多相关文章

  1. POJ 1035:Spell checker

    Spell checker Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 22574   Accepted: 8231 De ...

  2. bzoj 2295: 【POJ Challenge】我爱你啊

    2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec  Memory Limit: 128 MB Description ftiasch是个十分受女生欢迎的同学,所以 ...

  3. 【链表】BZOJ 2288: 【POJ Challenge】生日礼物

    2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 382  Solved: 111[Submit][S ...

  4. BZOJ2288: 【POJ Challenge】生日礼物

    2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 284  Solved: 82[Submit][St ...

  5. BZOJ2293: 【POJ Challenge】吉他英雄

    2293: [POJ Challenge]吉他英雄 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 80  Solved: 59[Submit][Stat ...

  6. BZOJ2287: 【POJ Challenge】消失之物

    2287: [POJ Challenge]消失之物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 254  Solved: 140[Submit][S ...

  7. BZOJ2295: 【POJ Challenge】我爱你啊

    2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 126  Solved: 90[Submit][Sta ...

  8. BZOJ2296: 【POJ Challenge】随机种子

    2296: [POJ Challenge]随机种子 Time Limit: 1 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 114  Solv ...

  9. BZOJ2292: 【POJ Challenge 】永远挑战

    2292: [POJ Challenge ]永远挑战 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 513  Solved: 201[Submit][ ...

随机推荐

  1. HashTable Dictionary HashMap

    HashTable和HashMap 脑海中一直存在两个Hash,一个是HashMap另一个是HashTable,今天来总结一下两者的区别 相同点:表示根据键的哈希代码进行组织的键/值对的集合. 区别: ...

  2. Unity-WIKI 之 AnimationToPNG

    组件功能 把3D角色的动画录制成PNG一帧一帧输出,这是一个件多么美好的事! 可能遇到问题 有可能当你新建完脚本时会出现下面的错误: `System.IO.File' does not contain ...

  3. Oracle导入导出dmp文件

    目 录 目             录...3 1      说明...3 2      导出dmp文件...3 3      导入dmp文件...5 3.1            环境准备...5 ...

  4. 护眼色的RGB值

    网上流行护眼色的RGB值和颜色代码 在搜索引擎搜“护眼色”,就会搜出一堆关于保护眼睛的屏幕颜色文章,说的统统是一种颜色,有点像绿豆沙的颜色.方法就是在屏幕设置里, 色调:85:饱和度:123:亮度:2 ...

  5. centos6.8部署vnc服务

    VNC全称是Virtual Network Computing,属于远程控制类软件.其优点是支持跨操作系统的远程图形化控制.在日常运维工作中,由于服务器常常是放在机房,我们不可能每次需要图形界面操作就 ...

  6. Html之初体验

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言.相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器根据标记 ...

  7. HYSBZ 2145 悄悄话

    2145: 悄悄话 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 271  Solved: 104[Submit][Status][Discuss] ...

  8. 项目管理和缺陷跟踪工具Redmine

    官网: http://www.redmine.org/ http://demo.redmine.org/ 下载: http://www.redmine.org/projects/redmine/wik ...

  9. Xcode7创建的项目添加启动图有问题?

    在Xcode7下创建的项目,由于某个原因,Xcode7添加启动图有点不一样.Xcode7与Xcode6不一样的地方在于:Xcode6的LaunchScreen.xib改成了LaunchScreen.s ...

  10. 【WIN10】基本控件

    先發個下載地址: http://yunpan.cn/cHuCqYzvsWFAL  访问密码 3470 說明一下.這個示例只是最簡單的演示,並不能提供太大的實用價值. 後面會介紹 Bing & ...