【LeetCode练习】[中等]139. 单词拆分
139. 单词拆分
算法思想:dp
题目:
转移矩阵:dp[i]=dp[j] && check(s[j…i−1])
java代码
class Solution {
public boolean wordBreak(String s, List<String> wordDict) {
boolean[] dp = new boolean[s.length() + 1];
Set<String> dict = new HashSet<>();
for (String word : wordDict) {
dict.add(word);
}
dp[0] = true;
for (int i = 0; i < s.length(); i++) {
for (int j = i; j >= 0; j--) {
if (dp[j] && dict.contains(s.substring(j, i + 1))) {
dp[i + 1] = true;
break;
}
}
}
return dp[s.length()];
}
}