Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
sample和discuss里数据都通过了但WA,求大神!方法挺简单暴力的#include <iostream> #include <string> #include <vector> using namespace std; bool ifRevise(string dicstr, string sample); int main(){ vector<string> dict; string tmp; cin >> tmp; while(tmp != "#"){ dict.push_back(tmp); cin >> tmp; } cin >> tmp; while(tmp != "#"){ vector<string>::iterator iter; for(iter = dict.begin(); iter != dict.end(); ++iter){ if(tmp == *iter){ cout << tmp << " is correct" << endl; cin >> tmp; break; } } cout << tmp << ":"; for(iter = dict.begin(); iter != dict.end(); ++iter){ if(ifRevise(*iter, tmp)){ cout << " "<< *iter; } } cout << endl; cin >> tmp; } return 0; } bool ifRevise(string dicstr, string sample){ int ErrorCase; if(dicstr.length() == sample.length() + 1){ ErrorCase = 1; }else if(dicstr.length() == sample.length()){ ErrorCase = 2; }else if(dicstr.length() == sample.length() - 1){ ErrorCase = 3; }else{ return false; } int count = 0, j = 0; for(int i = 0; i < dicstr.length(); i++){ if(j == sample.length() && ErrorCase == 1 && count == 0) return true; if(dicstr[i] == sample[j++]){ continue; }else if(count == 0){ switch(ErrorCase){ case 1: j--; break; case 2: break; case 3: i--; break; } count = 1; }else if(count == 1){ return false; } } return true; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator