问题
例子
思路
dp[i]为在s中截止到下标i-1,是否true
dp[i]=dp[j]==true && s[j,i]是否在list中
-
方法1
-
方法2
代码
//方法1
class Solution {
public boolean wordBreak(String s, List<String> list) {
boolean[] dp = new boolean[s.length()+1];
dp[0]=true;
for(int i=1; i<dp.length; i++) {//dp[i]在s中截止到下标i-1,是否true
for(int j=0; j<i; j++) {//dp[i]=dp[j]==true && s[j,i]在list中
//本来为j+1,i+1,但是在s上,就是j,i
if(dp[j] && list.contains(s.substring(j,i))){
dp[i]=true;
break;
}
}
}
return dp[dp.length-1];
}
}
//方法2