POJ 1035 Spell checker
来源:互联网 发布:淘宝双11红包攻略活动 编辑:程序博客网 时间:2024/06/17 02:51
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;}
阅读全文
0 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
- ERLANG 安装及环境变量配置
- Nginx之日志管理
- 命令行操作mysql
- 素数伴侣 匈牙利算法
- Linux bash 管道符及多命令执行
- POJ 1035 Spell checker
- 如何实现mybatis+Springboot 关联查询
- linux 安装mysql
- win7 MySQL5.7.18 免安装版 安装教程
- STM32库函数USART_SendData的缺陷和解决方法
- 离开---梦想不变
- 排序算法---之插入排序(直接插入排序&希尔排序)
- phpcms使用说明及语法说明
- GStreamer基础教程10——GStreamer工具