题目
Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words.
Note:
- The same word in the dictionary may be reused multiple times in the segmentation.
- You may assume the dictionary does not contain duplicate words.
我的想法
感觉是472. Concatenated Words的简单版
一样的方法,用dp就行
class Solution {
public boolean wordBreak(String s, List<String> wordDict) {
HashSet<String> dict = new HashSet<>();
for(String word : wordDict) {
dict.add(word);
}
boolean[] dp = new boolean[s.length() + 1];
dp[0] = true;
for(int i = 0; i < s.length(); i++) {
if(!dp[i]) {
continue;
}
for(int j = i + 1; j <= s.length(); j++) {
String sub = s.substring(i, j);
if(dict.contains(sub)) {
dp[j] = true;
}
}
}
if(dp[s.length()]) {
return true;
}
return false;
}
}