问题是:给定一个字符串 s 和一个单词字典 dict,确定 s 是否可以分割成一个或多个字典单词的空格分隔序列。
例如,给定 s = "hithere", dict = ["hi", "there"]。
返回 true 因为“hithere”可以被分割为“leet code”。
我的实现如下。此代码适用于正常情况。但是,它会遭受很多输入,例如:
s = “aaaaaaaaaaaaaaaaaaaaab”,dict = {“aa”,“aaaaaa”,“aaaaaaaa”}。
我想记住处理过的子字符串,但是我做错了。关于如何改进的任何建议?非常感谢!
class Solution {
public:
bool wordBreak(string s, unordered_set<string>& wordDict) {
int len = s.size();
if(len<1) return true;
for(int i(0); i<len; i++) {
string tmp = s.substr(0, i+1);
if((wordDict.find(tmp)!=wordDict.end())
&& (wordBreak(s.substr(i+1), wordDict)) )
return true;
}
return false;
}
};