- class Solution {
- public:
- bool wordBreak(string s, vector<string>& wordDict) {
- int l = s.length();
- unordered_set<string> wordSet(wordDict.begin(), wordDict.end());
- int f[l+1];
- f[0] = 1;
- for (int i=1; i<=l; i++) {
- // meaningless to check case j==i
- f[i] = false;
- for (int j=0; j<i; j++) {
- if (f[j]==true && wordSet.find(s.substr(j,i-j))!=wordSet.end()) {
- f[i] = true;
- break;
- }
- }
- }
- return f[l];
- }
- };