POJ 1035

来源:互联网 发布:zoom视频会议软件下载 编辑:程序博客网 时间:2024/05/01 08:59
#include<iostream>#include<string>using namespace std;/**poj 1035*Author:Biang Hoo*August 2 2013*/int main(){string Dictionary[10001];string check[51];string output[100];int num=0;//the input number of dictionaryint j=0;//the input num of checkstring str;while(cin>>str && str != "#"){Dictionary[num] = str;num++;}while(cin>>str && str != "#"){check[j] = str;j++;}for( int i=0;i<j;i++){bool find = false;int m;for(m=0;m<num;m++){if(check[i]==Dictionary[m]){cout<<check[i]<<" is correct"<<endl;find=true;break;}}if(!find){const char * word = check[i].c_str();int word_len = check[i].length();cout<<check[i]<<":"<<" ";for(m=0;m<num;m++){int dic_len=Dictionary[m].length();if(dic_len==word_len || dic_len==word_len-1 || dic_len == word_len+1 ){const char * dic =Dictionary[m].c_str();int diff=0;bool equal=true;if(dic_len==word_len){for(int z=0;z<word_len;z++){if(word[z] != dic[z]){diff++;if(diff>1){equal=false;break;}}}if(equal){cout<<dic<<" ";}}else if(dic_len == word_len-1){int word_num=0;int dic_num=0;while(word_num<word_len){if(word[word_num] != dic[dic_num]){word_num++;diff++;if(diff>1){  equal =false;break;  }}else{  word_num++;  dic_num++;  }}if(equal){cout<<dic<<" ";}}else{int word_num=0;int dic_num=0;while(dic_num<dic_len){  if(word[word_num] != dic[dic_num]){  dic_num++;   diff++;  if(diff>1){  equal =false;break;  }}else{  word_num++;  dic_num++;  } }if(equal){cout<<dic<<" ";}}}}cout<<endl;}find=false;}return 0;}
#include<iostream>#include<string>using namespace std;/**poj 1035*Author:Biang Hoo*August 2 2013*/void process(string word_str,string dic_str,int word_len,int dic_len){const char * word = word_str.c_str();const char * dic =dic_str.c_str();int diff=0;bool equal=true;if(dic_len==word_len){for(int z=0;z<word_len;z++){if(word[z] != dic[z]){diff++;if(diff>1){equal=false;break;}}}if(equal){cout<<dic<<" ";}}else if(dic_len == word_len-1){int word_num=0;int dic_num=0;while(word_num<word_len){if(word[word_num] != dic[dic_num]){word_num++;diff++;if(diff>1){  equal =false;break;  }}else{  word_num++;  dic_num++;  }}if(equal){cout<<dic<<" ";}}else{int word_num=0;int dic_num=0;while(dic_num<dic_len){  if(word[word_num] != dic[dic_num]){  dic_num++;   diff++;  if(diff>1){  equal =false;break;  }}else{  word_num++;  dic_num++;  } }if(equal){cout<<dic<<" ";}}}int main(){string Dictionary[10001];string check[51];string output[100];int num=0;//the input number of dictionaryint j=0;//the input num of checkstring str;while(cin>>str && str != "#"){Dictionary[num] = str;num++;}while(cin>>str && str != "#"){check[j] = str;j++;}for( int i=0;i<j;i++){bool find = false;int m;for(m=0;m<num;m++){if(check[i]==Dictionary[m]){cout<<check[i]<<" is correct"<<endl;find=true;break;}}if(!find){//const char * word = check[i].c_str();int word_len = check[i].length();cout<<check[i]<<":"<<" ";for(m=0;m<num;m++){int dic_len=Dictionary[m].length();if(dic_len==word_len || dic_len==word_len-1 || dic_len == word_len+1 ){//const char * dic =Dictionary[m].c_str();process(check[i],Dictionary[m],word_len,dic_len);}}cout<<endl;}find=false;}return 0;}


原创粉丝点击