原题链接:https://leetcode-cn.com/problems/word-break/
动态规划
dp[i]表示S[:i]可以成功拆分
状态转移:
dp[i]=dp[j]+s.substr(j,i-j) is of wordDict
代码
bool wordBreak(string s, vector<string>& wordDict) {
int len=s.size();
vector<bool> dp(len+1,0);
dp[0]=true;
for(int i=1;i<=len;i++){
for(int j=0;j<i;j++){
if(dp[j]&&find(wordDict.begin(),wordDict.end(),s.substr(j,i-j))!=wordDict.end()){
dp[i]=true;
break;
}
}
}
return dp[len];
}