poj1035Spell checker

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj1035Spell checker相关的知识,希望对你有一定的参考价值。

暴力解决。

先把字典里的每一个单词的长度存起来。在查找的时候。就比較长度,在多一个少一个之间找,

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<stdlib.h>
#include<algorithm>
#include<queue>
using namespace std;
char s[10005][20];
char h[20];
int w[10005],len;
int show(int a)
{
    int i,t,k;
    int bu=0;
    t=w[a]-len;
    if(t>1)
        return 1;
    if(t==0)
    {
        for(i=0;i<w[a];i++)
        {
            if(h[i]!=s[a][i])
             {bu++;}
        }
        if(bu==1)
            return 0;
    }
    else
    {
        if(t==1)
        {
            for(i=0,k=0;i<w[a];)
            {
                if(h[k]!=s[a][i])
                 {bu++;i++;}
                 else
                 {
                     i++;k++;
                 }
            }
            if(bu==1)
              return 0;
        }
        else
            if(t==-1)
            {
                for(i=0,k=0;k<len;)
                {
                    if(h[k]!=s[a][i])
                     {bu++;k++;}
                     else
                     {
                         i++;k++;
                     }
                }
            }
            if(bu==1)
                return 0;
    }
    return 1;
}
int main()
{
    int i=0;
    while(scanf("%s",&s[i]))
    {
        if(s[i][0]==‘#‘)
            break;
        w[i]=strlen(s[i]);
        i++;
    }
    i--;
    int j;
    while(scanf("%s",h))
    {
        if(h[0]==‘#‘)
            break;
        printf("%s",h);
        len=strlen(h);
       // printf("%d ,%s",i,s[0]);
        for(j=0;j<=i;j++)
        {
           if(w[j]==len&&strcmp(s[j],h)==0)
            {printf(" is correct\n");
              break;}
        }
        if(j>i)
        {
            printf(":");
            for(j=0;j<=i;j++)
                if(show(j)==0)  printf(" %s",s[j]);
            printf("\n");
        }
    }
	return 0;
}


以上是关于poj1035Spell checker的主要内容,如果未能解决你的问题,请参考以下文章

poj-1035-Spell Checker

Spell checker POJ 1035 字符串

POJ 1035Spell checker

POJ训练计划1035_Spell checker(串处理/暴力)

[POJ1035]Spell checker

poj1035Spell checker