简单动态规划,dp[i]表示字符串s[0~i]是否可分的bool值。
画表格可以理解:
class Solution {
public:
bool wordBreak(string s, unordered_set<string> &dict) {
int len=s.length();
vector<bool> dp(len+1,false);
dp[0]=true;
for(int i=0;i<len;i++)
for(int j=i;dp[i]&&j<len;j++){
if(dict.find(s.substr(i,j-i+1))!=dict.end())
dp[j+1]=true;
}
return dp[len];
}
};