动态规划。
记忆化搜索
class Solution {
HashMap<String,Boolean> map = new HashMap();
public boolean wordBreak(String s, List<String> wordDict) {
boolean res = false;
if(s.equals("")){
return true;
}
if(map.containsKey(s)){
return false;
}
for(int i = 0;i < s.length(); i++){
if(wordDict.contains(s.substring(0,i+1))){
boolean r = wordBreak(s.substring(i+1),wordDict);
if(r){
res = true;
}else{
map.put(s.substring(i+1),false);
}
}
}
return res;
}
}