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; } };