| ||||||||||
| 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 | |||||||||
用vector<string>怎么会超内存哪?郁闷死了,谁能帮我看一下?
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
while(1)
{
vector<string> dic;
string word;
cin>>word;
while(word != "#")
{
dic.push_back(word);
cin>>word;
}
string checked;
cin>>checked;
while(checked != "#")
{
int length = checked.length();
vector<string> replace;
for(int i = 0; i < dic.size(); i++)
{
int lengthi = dic[i].length();
switch(lengthi-length){
case 0:
{
if(dic[i] == checked)
{
cout<<checked<<" is correct"<<endl;
goto END;
}
else // check replace
{
for(int j = 0; j < length; j++)
if(checked[j] != dic[i][j])
{
if(j == length-1 || checked.substr(j+1) == dic[i].substr(j+1))
replace.push_back(dic[i]);
break;
}
}
break;
}
case 1: // check insert
{
for(int j = 0; j < length; j++)
if(checked[j] != dic[i][j])
{
if(checked.substr(j) == dic[i].substr(j+1))
replace.push_back(dic[i]);
break;
}
if(j == length) // insert at end
replace.push_back(dic[i]);
break;
}
case -1: // check delete
{
for(int j = 0; j < lengthi; j++)
if(checked[j] != dic[i][j])
{
if(checked.substr(j+1) == dic[i].substr(j))
replace.push_back(dic[i]);
break;
}
if(j == lengthi) // delete at end
replace.push_back(dic[i]);
break;
}
default: // no replacement could be done
;
}
}
END:
if(i == dic.size()) // not correct, find replacements
{
cout<<checked<<':';
if(replace.size() == 0)
cout<<endl;
else
{
for(int j = 0; j < replace.size(); j++)
cout<<' '<<replace[j];
cout<<endl;
}
}
cin>>checked;
}
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator