#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
struct vv
{
char s[20];
int id;
}v[10005];
int cnt=0;
int cmp(struct vv x,struct vv y)
{
return strlen(x.s)<strlen(y.s);
}
int cmp2(struct vv x,struct vv y)
{
return x.id<y.id;
}
void judge(char *s)
{
vector<struct vv> test;
int num=strlen(s);
test.clear();
for(int i=0;i<cnt;i++)
{
if(!strcmp(s,v[i].s)) {printf("%s is correct\n",s);return;}
if(strlen(v[i].s)==num||strlen(v[i].s)==num-1||strlen(v[i].s)==num+1)
{
test.push_back(v[i]);
}
}
sort(test.begin(),test.end(),cmp2);
int ok=0;
printf("%s: ",s);
for(int i=0;i<test.size();i++)
{
if(strlen(test[i].s)==num-1)
{
int ok=0;
for(int j=0;j<num;j++)
{
if(ok==0&&test[i].s[j]==s[j])
continue;
if(ok==1&&test[i].s[j-1]==s[j])
continue;
else
{
if(ok==0) ok=1;
else {ok=2;break;}
}
}
if(ok!=2) printf("%s ",test[i].s);
}
if(strlen(test[i].s)==num)
{
int count=0;
for(int j=0;j<num;j++)
if(test[i].s[j]==s[j]) count++;
if(count==num-1)
printf("%s ",test[i].s);
}
if(strlen(test[i].s)==num+1)
{
int ok=0;
for(int j=0;j<num+1;j++)
{
if(ok==0&&test[i].s[j]==s[j])
continue;
if(ok==1&&test[i].s[j]==s[j-1])
continue;
else
{
if(ok==0) ok=1;
else {ok=2;break;}
}
}
if(ok!=2) printf("%s ",test[i].s);
}
}
printf("\n");
}
int main()
{
char temp[20];
while(true)
{
scanf("%s",temp);
if(!strcmp(temp,"#")) break;
else {
strcpy(v[cnt].s,temp);
v[cnt].id=cnt;
cnt++;
}
}
sort(v,v+cnt,cmp);
struct vv check[55];
while(true)
{
scanf("%s",temp);
if(!strcmp(temp,"#")) break;
else judge(temp);
}
return 0;
}

硬着头皮写下去就OK了。

主要思维量在于少一个字母和多一个字母的情况,

自己的分析还是对的。就是略掉这个字母看继续比较后面的。

不过裸写的速度不够快,二分的思想自己应着重练一下。

POJ1035的更多相关文章

  1. POJ1035——Spell checker(字符串处理)

    Spell checker DescriptionYou, as a member of a development team for a new spell checking program, ar ...

  2. poj1035 Spell checker

    这题目比较简单,把思路搞清楚就可以啦. #include <stdio.h> #include <string.h> +][]; int init(){ ; while(~sc ...

  3. POJ1035&&POJ3080&&POJ1936

    字符串处理专题,很早就写好了然而忘记写blog了 1035 题意:给你一些单词作为字典.然后让你查找一些单词.对于每个单词,如果在字典中就输出它.否则输出所有它通过删除||增加||替换一个字符能得到的 ...

  4. poj分类 很好很有层次感。

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  5. 【转】POJ题目分类推荐 (很好很有层次感)

    OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期: 一. ...

  6. 【转】ACM训练计划

    [转] POJ推荐50题以及ACM训练方案 -- : 转载自 wade_wang 最终编辑 000lzl POJ 推荐50题 第一类 动态规划(至少6题, 和 必做) 和 (可贪心) (稍难) 第二类 ...

  7. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  8. (转)POJ题目分类

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  9. acm常见算法及例题

    转自:http://blog.csdn.net/hengjie2009/article/details/7540135 acm常见算法及例题  初期:一.基本算法:     (1)枚举. (poj17 ...

随机推荐

  1. p1315构建双塔 dp

    From easthong ☆构建双塔                 描述 Description     2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了 ...

  2. [待码][BZOJ1858]SCOI2010序列操作 jzyzoj1655

    待码的线段树.....太长了看上去不是很想写 [ 什么破理由啊摔,不要脸 ] 嗯先水几道再写

  3. [NC13C]形态形成场/[Gym100430B]Divisible Substrings

    [NC13C]形态形成场/[Gym100430B]Divisible Substrings 题目大意: 有\(m(m\le26)\)个字符串替换式\(S_i(|S_i\le100|)\),表示某个大写 ...

  4. hdu 3507 斜率优化

    我的第一道斜率优化. 就这道题而言,写出原始的方程: dp[i] = min{ dp[j] + (sum[i]-sum[j])2  + M | j in [0,i) } O(n^2)的复杂度肯定超时, ...

  5. bzoj 1009 DP 矩阵优化

    原来的DP: dp[i][j]表示长度为i的合法串,并且它的长度为j的后缀是给定串的长度为j的前缀. 转移: i==0 dp[0][0] = 1 dp[0][1~m-1] = 0 i>=1 dp ...

  6. bzoj1036 count 树链剖分或LCT

    这道题很久以前用树链剖分写的,最近在学LCT ,就用LCT再写了一遍,也有一些收获. 因为这道题点权可以是负数,所以在update时就要注意一下,因为平时我的0节点表示空,它的点权为0,这样可以处理点 ...

  7. 利用SharpZipLib对字符串进行压缩和解压缩

    添加对ICSharpCode.SharpZipLib的引用. using ICSharpCode.SharpZipLib.BZip2; /// <summary> /// 压缩 /// & ...

  8. 模型的性能评估(二) 用sklearn进行模型评估

    在sklearn当中,可以在三个地方进行模型的评估 1:各个模型的均有提供的score方法来进行评估. 这种方法对于每一种学习器来说都是根据学习器本身的特点定制的,不可改变,这种方法比较简单.这种方法 ...

  9. Ubuntu 16.04开启SFTP服务

    说明:其实只要安装了SSH服务就已经具备了SFTP功能,这个用普通客户端无法连接,只能用支持SFTP协议的客户端才能连接. FileZilla作为FTP客户端,它也可以连接SFTP,SFTP的监听端口 ...

  10. Struts2 学习笔记 09 访问Web元素

    我们想要访问Map类型request,session,application.真实类型HttpServletRequest,HttpSession,ServletContext的引用,并对它们进行操作 ...