zoukankan      html  css  js  c++  java
  • PKU 1035 Spell checker(Vector+String应用)

    题目大意:原题链接

    1输入一个字符串,如果字典中存在该字符串,直接输出,否则;

    2.删除,替换,或插入一个字母。如果使得输入字符串==字典中已经有的单词,输出该单词,否则。

    3.直接输入下一个字符串,继续匹配.

    #include<vector>
    #include<string>
    #include<iostream>
    using namespace std;
    string s;
    int main(){
        vector<string> dict;
        while(cin>>s){
            if(s=="#") break;
            dict.push_back(s);
        }
        while(cin>>s){
            if(s=="#") break;
            cout<<s;
            int len1=s.size();
              bool sign=false;
              for(int i=0;i<dict.size();i++){
                if(s==dict[i]){
                    cout<<" is correct"<<endl;
                    sign=true;break;
                }
              }
              if(!sign){
                cout<<":";
                //枚举字典中每一个单词进行查找 
                  for(int i=0;i<dict.size();i++){
                    int len2=dict[i].size();
                    int d=0,delta=len2-len1;
                    if(delta>1||delta<-1) continue; 
                    if(delta==-1){//删除 
                        for(int j=0;j<len1;j++){
                            if(s[j]==dict[i][d])
                                d++;
                        }
                        if(d==len2) cout<<' '<<dict[i];
                    }
                    else if(delta==0){//替换 
                           for(int j=0;j<len1;j++){
                            if(s[j]!=dict[i][j])
                                d++;
                           }
                        if(d==1) cout<<' '<<dict[i];
                    }
                    else if(delta==1){//插入 
                        for(int j=0;j<len2;j++){
                            if(s[d]==dict[i][j])
                                d++;
                        }
                        if(d==len1) cout<<' '<<dict[i];
                    }
                }
                  cout<<endl;
              }
        }
    }
  • 相关阅读:
    HDU1251统计难题map+输入
    HDU1863畅通工程
    POJ2253 Frogger
    HDU 4725 (The Shortest Path in Nya Graph)层次网络
    hdu5521(Meeting)spfa 层次网络最短路
    Fire Net ZOJ 1002
    POJ3259(Wormholes) 判断负环
    POJ3268(Silver Cow Party)
    棋盘问题 POJ 1321
    POJ 1661 (Help Jimmy )
  • 原文地址:https://www.cnblogs.com/freinds/p/6416340.html
Copyright © 2011-2022 走看看