POJ 1035 Spell checker
2017-07-20 13:35
513 查看
POJ1035
删除、替换、增加一个字母,使得输入单词能与字典中的单词相同,则输出该字典单词。
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; char dic[10001][16]; char ch[16]; int m; void read() { while (cin >> dic[m]) { if (dic[m][0] == '#') break; else m++; } } bool iscor(char* ch) { int i; for (i = 0; i<m; i++) if (strcmp(dic[i], ch) == 0) return true; return false; } void Replace(char *ch) { printf("%s:", ch); int len1 = strlen(ch), len2; int i, j, k, flag = 0;//flag为标记 for (i = 0; i<m; i++) { len2 = strlen(dic[i]); if (len1 == len2 + 1)//deleting { flag = 0; for (j = 0, k = 0; j<len1;) if (ch[j] != dic[i][k]) j++, flag++; else j++, k++; if (flag == 1) printf(" %s", dic[i]); } if (len1 == len2)//replace { flag = 0; for (j = 0; j<len1; j++) if (ch[j] != dic[i][j]) flag++; if (flag == 1) printf(" %s", dic[i]); } if (len1 + 1 == len2)//adding { flag = 0; for (j = 0, k = 0; k<len2;) if (ch[j] != dic[i][k]) k++, flag++; else j++, k++; if (flag == 1) printf(" %s", dic[i]); } } } int main() { read(); while (cin >> ch&&ch[0] != '#') { if (iscor(ch)) printf("%s is correct\n", ch); else { Replace(ch); printf("\n"); } } return 0; }
相关文章推荐
- POJ1035 Spell checker
- poj1035 Spell checker
- POJ:1035 Spell checker
- [POJ1035]-Spell checker
- POJ 一 1035 Spell checker
- poj1035 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
- poj1035——Spell checker
- POJ1035--Spell checker--Tire
- poj 1035 Spell checker
- POJ 1035 Spell checker
- POJ 1035 Spell checker
- poj 1035 Spell Checker