Word Break
dp, 用个数组记下前i个字符是否能被break,而递推公式是:如果已知dp[0] ~ dp[i], 对从0~i 中任意 j,如果有dp[j]&&s.substring(j, i+1) 为true,则dp[i+1] 为true。
public class Solution {
public boolean wordBreak(String s, Set<String> dict) {
if(s == null || s.length() == 0) return true;
int len = s.length();
boolean[] dp = new boolean[len + 1];
dp[0] = true;
for(int i = 0; i < len; i++) {
for(int j = 0; j <= i; j++) {
if(dp[j] && dict.contains(s.substring(j, i + 1))) {
dp[i + 1] = true;
break;
}
}
}
return dp[len];
}
}

浙公网安备 33010602011771号