给定一个字符串s和一个单词字典,确定是否可以将s分割成一个或多个字典单词的空格分隔的序列。
分析:用动态规划,dp[i]表示字符串s[0~i]是否可分的bool值。
bool wordBreak(string s, unordered_set<string> &dict) {
int n = s.size();
vector<bool> dp(n+1, false);
dp[0] = true;
for(int i= 0; i < n; ++i){
for(int j = i; dp[i]&&j<n; ++j){
if(dict.find(s.substr(i, j - i+1)) != dict.end())
dp[j+1] = true;
}
}
return dp[n];
}