题意:

    此题是一个字符串的问题,首先要给出一个字典,里面存储了数个单词。而后,给出一个单词,如果字典中存在,那么就输出correct,如果字典中没有,那么就要判断是不是这个单词有错误,错误有3种,第一种是单词种的一个字母写错了,就是和字典中的单词来说只有一个字母不同,第二种是单词多了一个字母,如果去掉该字母,则和字典中的某单词一致。第三种是单词少一个字母,如果添加上该字母,则和字典中的某单词一致。目的是输出这几种错误所对应的字典中的单词。
 
暴力求解超时!!!
#include<cstdio>
#include<iostream>
#include<cstring>
#define M 10010
#define N 15
using namespace std;
char ch[M][N],s[N];
int a[M];
int search(char *a,char *b)
{
int lena=strlen(a);
int lenb=strlen(b);
if(lena==lenb)
{
int flag=;
for(int i=;i<lena;i++)
if(a[i]!=b[i])
if(!flag) flag=;
else return ;
if(flag==)return ;
}
if(lena==lenb+)
{
int pa=,pb=,flag=;
while()
{
if(pa>=lena&&pb>=lenb)break;
if(a[pa]==b[pb])
{
pa++;
pb++;
}
else
if(!flag)
{
flag=;
pa++;
}
else return ;
}
if(flag==)return ;
}
if(lena==lenb-)
{
int pa=,pb=,flag=;
while()
{
if(pa>=lena&&pb>=lenb)break;
if(a[pa]==b[pb])
{
pa++;
pb++;
}
else
if(!flag)
{
flag=;
pb++;
}
else return ;
}
if(flag==)return ;
}
return ;
}
int main()
{
int n=;
while()
{
scanf("%s",ch[++n]);
if(ch[n][]=='#')
{
n--;
break;
}
}
while()
{
int flag=,cnt=;
scanf("%s",s);
if(s[]=='#')break;
printf("%s",s);
for(int i=;i<=n;i++)
{
if(strcmp(s,ch[i])==)
{
printf(" is correct\n");
flag=;
break;
}
else if(search(s,ch[i]))
a[++cnt]=i;
}
if(!flag)
{
printf(":");
for(int i=;i<=cnt;i++)
printf(" %s",ch[a[i]]);
printf("\n");
}
}
return ;
}

Spell checker(poj 1035)的更多相关文章

  1. POJ 1035 Spell checker (模拟)

    题目链接 Description You, as a member of a development team for a new spell checking program, are to wri ...

  2. Spell checker(串)

    http://poj.org/problem?id=1035 题意:给定一个单词判断其是否在字典中,若存在输出"%s is correct",否则判断该单词删掉一个字母,或增加一个 ...

  3. poj 1035 Spell checker ( 字符串处理 )

    Spell checker Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16675   Accepted: 6087 De ...

  4. [ACM] POJ 1035 Spell checker (单词查找,删除替换添加不论什么一个字母)

    Spell checker Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 18693   Accepted: 6844 De ...

  5. poj 1035 Spell checker

    Spell checker Time Limit: 2000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u   J ...

  6. Spell checker POJ 1035 字符串

    Spell checker Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 25426   Accepted: 9300 De ...

  7. POJ 1035:Spell checker

    Spell checker Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 22574   Accepted: 8231 De ...

  8. POJ 1035 代码+具体的目光

    Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19319 Accepted: 7060 Descri ...

  9. VSCode中插件Code Spell Checker

    说在前面 介绍 Code Spell Checker 是在VSCode中的一款插件,能够帮助我们检查单词拼写是否出现错误,检查的规则遵循 camelCase (驼峰拼写法). 安装方法 打开VSCod ...

随机推荐

  1. 嵌入式实时操作系统μCOS原理与实践+事件部分代码

    //事件等待表的初始化函数:pevent表示事件控制块的指针#if (OS_EVENT_EN)void  OS_EventWaitListInit (OS_EVENT *pevent){    INT ...

  2. MongoDB之bson的介绍

    MongoDB之bson的介绍 1. 什么是bson BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JS ...

  3. Oracle数据分页,并传出数据集

    1.创建Package create or replace package forPaged is type my_csr is ref cursor; procedure getPaged(tabl ...

  4. find只查当前目录 和 -exec和xargs区别

    1.find默认查找当前目录和子目录,通过maxdepth限制只查当前目录: find . -maxdepth 1 -type f -name "*.php" 2. find . ...

  5. 通用跨站脚本攻击(UXSS)

    有同学问,用百度搜索了下,发现国内相关介绍基本是没有,就写篇文章来介绍下.不过看到有现成的介绍,就拿来翻译修改下.本文的内容主要翻译来自该文章,把一些没必要的话给删了,做了一些整理修改,然后补充一些案 ...

  6. SQL注入小结

    分类学习有利于条理化知识,大致的SQL注入分为三种: 1.BealeanBase 2.TimeBase 3.ErrorBase 1.从最简单的说起,基于布尔类型是最常见的SQL注入方式 select ...

  7. Linux下修改计算机名

    SuSe操作系统: 1.  修改/etc/HOSTNAME 文件  ,其内容为计算机名. 输入命令:vi /etc/HOSTNAME 使用键盘上的 x 键一个一个删除所有内容 ,然后使用键盘上的 i ...

  8. 2013 ACM/ICPC Asia Regional Chengdu Online 1004 Minimum palindrome

    Minimum palindrome Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. Python文件基础

    ===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...

  10. sqlite 跨数据库查询

    try { $dbh = new PDO($dbrootemp, null, null); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_ ...