poj1035 Spell checker
2014-01-15 22:38
344 查看
题意:有本自定义的字典,有一些单词。查询,某个单词是否在字典中存在,如果存在,则输出“is correct”;否则,存在三种可能情况:
1。替换其中一个字母,使其在字典中存在;
2。删除其中一个字母,使其在字典中存在;
3。添加某一个字母,使其在字典中存在;
先说一句,这是我两个多月来,第一次A的一个题。至于为什么会这样,这两个多月来发生的事情我就不提了。这是一个新的开端,fighting。(其实想想自己两个多月没敲代码,我连自己都不敢相信,55555555~。他妈的,怎么这么矫情)
吐槽一下这个题,算法根本没问题,代码写的也没问题。测了很多测试数据,但一开始就是过不了。后来把单词的输出放在了replace函数中(一开始是返回字母的指针),结果就对了。搞不懂,可能有的地方没搞好。也是折腾了好久,但还是没放弃啊。嗯嗯,一开始想放弃,但最终还是A了。所以说,不要轻易放弃。额,啰嗦了,希望没人看到。不过,这也算是我新的开始,要好好搞了。
1。替换其中一个字母,使其在字典中存在;
2。删除其中一个字母,使其在字典中存在;
3。添加某一个字母,使其在字典中存在;
先说一句,这是我两个多月来,第一次A的一个题。至于为什么会这样,这两个多月来发生的事情我就不提了。这是一个新的开端,fighting。(其实想想自己两个多月没敲代码,我连自己都不敢相信,55555555~。他妈的,怎么这么矫情)
吐槽一下这个题,算法根本没问题,代码写的也没问题。测了很多测试数据,但一开始就是过不了。后来把单词的输出放在了replace函数中(一开始是返回字母的指针),结果就对了。搞不懂,可能有的地方没搞好。也是折腾了好久,但还是没放弃啊。嗯嗯,一开始想放弃,但最终还是A了。所以说,不要轻易放弃。额,啰嗦了,希望没人看到。不过,这也算是我新的开始,要好好搞了。
#include<iostream> #include<cstring> #define MAX 10100 #define N 55 using namespace std; struct word { char s[16]; int len; }; word dicy[MAX]; word chek ; int d_num,c_num; bool is_correct(char *p) { for(int j=0;j<d_num;j++) if(strcmp(dicy[j].s,p)==0) return true; return false; } void replace(word chek,word dicy) { int count; if(chek.len==dicy.len) { count=0; for(int i=0;i<chek.len;i++) if(chek.s[i]!=dicy.s[i]) count++; if(count==1)cout<<" "<<dicy.s; } if(chek.len+1==dicy.len) { int j=0; count=0; for(int i=0;i<dicy.len;i++) if(chek.s[j]!=dicy.s[i]) count++; else j++; if(count==1)cout<<" "<<dicy.s; } if(chek.len-1==dicy.len) { int k=0; count=0; for(int i=0;i<chek.len;i++) if(chek.s[i]!=dicy.s[k]) count++; else k++; if(count==1)cout<<" "<<dicy.s; } } int main() { char s[20]; int i,len; i=0; while(cin>>s) { if(s[0]=='#') break; strcpy(dicy[i].s,s); len=strlen(s); dicy[i].len=len; i++; } d_num=i; i=0; while(cin>>s) { if(s[0]=='#') break; strcpy(chek[i].s,s); len=strlen(s); chek[i].len=len; i++; } c_num=i; for(i=0;i<c_num;i++) { if(is_correct(chek[i].s)) cout<<chek[i].s<<" is correct"<<endl; else { cout<<chek[i].s<<":"; for(int j=0;j<d_num;j++) replace(chek[i],dicy[j]); cout<<endl; } } return 0; }
相关文章推荐
- POJ-1035-Spell checker
- POJ:1035 Spell checker
- [POJ1035]-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
- POJ1035——Spell checker
- poj 1035 Spell checker
- poj1035 Spell checker
- poj1035_Spell checker
- POJ 1035 Spell checker
- poj1035 Spell checker
- POJ1035——spell checker
- POJ 1035 Spell checker
- poj1035 Spell checker
- poj 1035 Spell checker