poj 1035 Spell checker
Spell checker
Time Limit: 2000 MS Memory Limit: 65536 KB
64-bit integer IO format: %I64d , %I64u Java class name: Main
Description
Input
Output
Sample Input
i
is
has
have
be
my
more
contest
me
too
if
award
#
me
aware
m
contest
hav
oo
or
i
fi
mre
#
Sample Output
me is correct
aware: award
m: i my me
contest is correct
hav: has have
oo: too
or:
i is correct
fi: i
mre: more me 题意:查找字典
直接模拟替换加减的过程。
比较两个串的长度。要相差为1 的时候才能进行模拟。
模拟的过程就是进行一个个的匹配。
发现失配的次数小于等于 1就可以输出。
分情况:1:相等
2:l1==l2
l1-l2==1 加一
l1-l2==-1 删一
#include <iostream>
#include <stdio.h>
#include <string.h> using namespace std;
char map[][];
char str[]; int IsOk(int n)
{
int l1=strlen(str);
int l2=strlen(map[n]);
int k,i,j;
switch(l1-l2)
{
case :
k=;
for(i=j=; i<l1;)
{
if(str[i]!=map[n][j])
k++,i++;
else
i++,j++;
}
if(k==)
return ;
break;
case :
k=;
for(i=j=; i<l1; i++,j++)
{
if(str[i]!=map[n][j])
k++;
}
if(k==)
return ;
break;
case -:
k=;
for(i=j=; j<l2;)
{
if(str[i]!=map[n][j])
k++,j++;
else
i++,j++;
}
if(k==)
return ;
break;
}
return ;
} int main()
{
int N=;
int i=;
while(scanf("%s",map[N])&&strcmp(map[N],"#")!=) N++;
while(scanf("%s",str)&&strcmp(str,"#")!=)
{
for(i=; i<N; i++)
{
if(strcmp(str,map[i])==)
{
printf("%s is correct\n");
break;
}
}
if(i==N)
{
printf("%s:",str);
for(int i=; i<N; i++)
if(IsOk(i))
printf(" %s",map[i]);
printf("\n");
}
}
return ;
}
poj 1035 Spell checker的更多相关文章
- poj 1035 Spell checker ( 字符串处理 )
Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16675 Accepted: 6087 De ...
- [ACM] POJ 1035 Spell checker (单词查找,删除替换添加不论什么一个字母)
Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 18693 Accepted: 6844 De ...
- poj 1035 Spell checker(水题)
题目:http://poj.org/problem?id=1035 还是暴搜 #include <iostream> #include<cstdio> #include< ...
- poj 1035 Spell checker(hash)
题目链接:http://poj.org/problem?id=1035 思路分析: 1.使用哈希表存储字典 2.对待查找的word在字典中查找,查找成功输出查找成功信息 3.若查找不成功,对word增 ...
- POJ 1035 Spell checker 字符串 难度:0
题目 http://poj.org/problem?id=1035 题意 字典匹配,单词表共有1e4个单词,单词长度小于15,需要对最多50个单词进行匹配.在匹配时,如果直接匹配可以找到待匹配串,则直 ...
- POJ 1035 Spell checker(串)
题目网址:http://poj.org/problem?id=1035 思路: 看到题目第一反应是用LCS ——最长公共子序列 来求解.因为给的字典比较多,最多有1w个,而LCS的算法时间复杂度是O( ...
- POJ 1035 Spell checker (模拟)
题目链接 Description You, as a member of a development team for a new spell checking program, are to wri ...
- POJ 1035 Spell checker 简单字符串匹配
在输入的单词中删除或替换或插入一个字符,看是否在字典中.直接暴力,172ms.. #include <stdio.h> #include <string.h> ]; ][], ...
- 【POJ】1035 Spell checker
字典树. #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib ...
随机推荐
- JS,Jquery获取各种屏幕的宽度和高度
Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...
- java 动态编译
public class Main { public static void main(String[] args) { System.out.println("Hello World!&q ...
- WebService到底是什么?
一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...
- 通过Percona XtraBackup添加一个slave
假设我的master是172.16.15.8,要添加的slave是172.16.15.9 1:在主服务器执行备份操作(172.16.15.8) /usr/bin/innobackupex --comp ...
- 理解angularjs的作用域
<!doctype html> <html ng-app="myApp"> <head> <script src="http:/ ...
- asp.net下拉列表绑定数据库多个字段
select ID, CONVERT(varchar(10),TBName) +','+RoomName+ ',最大人数:'+CONVERT(varchar(10),MAXNum) as ClassR ...
- CIDR-Address介绍
CIDR是一种用二进制表示法来代替十进制表示法的新方法. IP地址有“类”的概念,/8掩码是A类,/16掩码是B类,/24掩码是C类等等.但是/12,/18,/25呢?这就是无类的概念了,CIDR的作 ...
- ExtJs弹出窗口
1.Ext.Msg.alert(String title, String msg, [Function fn], [Object scope]) 显示一个标准的带有一个"确定"按钮 ...
- 常见算法是js实现汇总(转载)
常见算法是js实现汇总 /*去重*/ <script> function delRepeat(arr){ var newArray=new Array(); var len=arr.len ...
- VC++6.0 Debug单步调试
相信大家对谭浩强童鞋都不陌生,想当年,是他 引领我们步入了C的殿堂,我们从他那里学会了如何写代码,他却没有教我们如何Debug,而我们伟大的老师,也对此只字不提.相信很少有人可以一次性写出 完全正确的 ...