目录
- 一、题目解析
- 二、算法原理
- 三、代码实现
一、题目解析
二、算法原理
三、代码实现
class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict)
{
int n = s.size();
unordered_set<string> hash;
for (auto x : wordDict) hash.insert(x);
vector<bool> dp(n + 1);
dp[0] = true;
s = ' ' + s;
for (int i = 1; i <= n; i++)
{
for (int j = i; j >= 1; j--)
{
if (dp[j - 1] && hash.count(s.substr(j, i - j + 1)))
{
dp[i] = true;
break;
}
}
}
return dp[n];
}
};