这道题最开始的想法是一个一个判断就可以了,提交的卡住了
这个就是说要考虑最后到达结果,会有很多不同的解决方式。
所以方法就是建立一个长为s.length()+1的布尔类型的数组,然后用这个数组来表示 第 i 之前的字符串s能不能用字典来表示。之后再i的基础上在进行判定 i到j能不能用字典来表示
动态规划的问题要建立dp来存储中间通用的数据。
class Solution {
public boolean wordBreak(String s, List<String> wordDict) {
boolean[] dp=new boolean[s.length()+1];
dp[0]=true;
for (int i = 1; i <dp.length ; i++) {
for (int j = i-1; j >=0 ; j--) {
dp[i]=dp[j]&&wordDict.contains(s.substring(j,i));
if(dp[i]){
break;
}
}
}
return dp[s.length()];
}
}