leetcode - Word Break
2013-10-13 10:59 张汉生 阅读(139) 评论(0) 收藏 举报题目描述:点击此处
class Solution {
public:
int * flag;
bool wordBreak(string &s, int index, unordered_set<string> &dict){
if (flag[index]==-1)
return false;
int len = s.length()-index;
if (len==0)
return true;
string header;
bool ans = false;
for (int i=index; i<s.length(); i++){
header = header+s.at(i);
if (dict.find(header)!=dict.end())
if (wordBreak(s, i+1, dict)){
ans = true;
break;
}
}
if (ans == false)
flag[index] = -1;
return ans;
}
bool wordBreak(string s, unordered_set<string> &dict) {
// Note: The Solution object is instantiated only once and is reused by each test case.
flag = new int[s.length()+1];
for (int i=0; i<s.length()+1; i++)
flag[i] = 0;
bool ans = wordBreak(s,0,dict);
delete []flag;
return ans;
}
};
浙公网安备 33010602011771号