简单题,但是需要把原来的问题分解成多个步骤
class Solution {
public:
string find(string s, set<string>& newDict)
{
for(int i=0;i<s.size();i++)
{
string temp = s.substr(0,i+1);
if(newDict.find(temp)!=newDict.end())
return temp;
}
return s;
}
string replaceWords(vector<string>& dict, string s) {
vector<string> split;
int start= 0;
int end=0;
while(start<s.size()&&end<s.size())
{
while(s[start]==' ')
start++;
end=start;
while(end<s.size()&&s[end]!=' ')
end++;
split.push_back(s.substr(start, end-start));
start=end;
}
set<string> newDict;
for(int i=0;i<dict.size();i++)
newDict.insert(dict[i]);
string result = "";
for(int i=0;i<split.size()-1;i++)
result+=find(split[i], newDict)+" ";
result+=find(split[split.size()-1], newDict);
return result;
}
};