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;
              }
        }
    }
  • 相关阅读:
    hbase java api
    hbase
    误删/usr文件夹解决办法
    死锁问题 代码示例
    H2O 生成 多线程并发控制 Semaphore
    多线程 打印零与奇偶数
    多线程交替打印 采用Semaphore
    多线程按顺序执行
    判断回文数
    整数反转
  • 原文地址:https://www.cnblogs.com/freinds/p/6416340.html
Copyright © 2011-2022 走看看