poj 1035 Spell checker
来源:互联网 发布:js转换php时间戳 编辑:程序博客网 时间:2024/05/02 04:28
先给一个词典
然后给单词,错的单词通过改、增、删一个字母,输出正确的单词
#include<stdio.h>#include<string.h>char word[10010][20],s[20];int ha(int i,char *p){int j,k;int l=strlen(word[i]),len=strlen(s);int cha=l-len;if(cha<0)cha=-cha;if(cha>1)//长度差大于一的无法修改return 0;if(l==len){int bu=0;for(j=0;j<l;j++)if(word[i][j]!=s[j])bu++;if(bu==1)//长度相等时只能有一个字母不同return 1;else return 0;}if(l<len){int bu=0;for(j=0,k=0;j<=l&&k<=len;){if(word[i][j]==s[k]){j++;k++;}else{bu++;k++;//出错单词比词典词大一时,碰到不同字母,出错单词跳过去}}if(bu==1)//只能跳过一个return 1;else return 0;}if(l>len){int bu=0;for(j=0,k=0;j<=l&&k<=len;){if(word[i][j]==s[k]){j++;k++;}else{bu++;j++;//出错单词比词典词小一时,碰到不同字母,词典词跳过去}}if(bu==1)//只能跳过一个return 1;else return 0;}}int main(){int i=0,n;while(gets(word[i++])){if(word[i-1][0]=='#')break;}i--;n=i;while(gets(s)){if(s[0]=='#')break;for(i=0;i<n;i++)if(strcmp(word[i],s)==0){printf("%s is correct\n",word[i]);break;}if(i<n)continue;printf("%s:",s);for(i=0;i<n;i++){if(ha(i,s)){printf(" %s",word[i]);}}printf("\n");}return 0;}
- poj-1035-Spell checker
- poj 1035 Spell checker
- Poj 1035 --Spell checker
- Spell checker--POJ 1035
- poj 1035 Spell checker
- poj 1035 Spell checker
- POJ-1035-Spell checker
- poj 1035 Spell Checker
- POJ 1035 Spell checker
- poj 1035 Spell checker
- poj 1035 Spell checker
- poj 1035 Spell checker
- POJ 1035 Spell checker
- POJ 1035 Spell checker
- poj 1035 Spell checker
- POJ 1035 Spell checker
- poj 1035 Spell checker
- POJ 1035 Spell checker
- 今夜迅雷上市
- “轻松加愉快”地实现并使用IComparer接口
- 锁的概述
- 关于静态初始化块和构造函数
- 微博. 博客与一般网站. 的区别
- poj 1035 Spell checker
- Delegate 与 MulticastDelegate 委托的单波与多波模式
- 痛并快乐着
- 1320 对不明物种的研究
- 给参加全国电子大赛的学弟学妹的一些建议
- LINQ to XML操作Xml文档
- Windows 核心编程 --- 卷首语
- 自我超越
- 以API读取串口读卡器信息(同步阻塞)