思路:dp,常见dp思路,将字符串分割为前后子串,如果前串满足需求,只需判断后串即可
尝试?(IP分割问题)
https://leetcode-cn.com/problems/word-break/
bool wordBreak(string s, vector<string>& wordDict) {
vector<int> dp(s.size() + 1);
set<string> string_flag;
for (int i = 0; i < wordDict.size(); i++) {
string_flag.insert(wordDict[i]);
}
s = " " + s;
dp[0] = 1;
for (int i = 1; i < s.size(); i++) {
for (int j = 1; j <= i; j++) {
string temp = s.substr(j, i - j + 1);
if (dp[j - 1] && string_flag.find(temp) != string_flag.end()) {
dp[i] = 1;
break;
}
}
}
return dp[s.size() - 1];
}