LeetCode---139. Word Break

LeetCode—139. Word Break

题目

https://leetcode.com/problems/word-break/description/
给出一个非空字符串s,和一个字典,其中包含非空的单词,判断s是否可以被完全切分成由字典中的单词所组成。字典中的单词可以重复使用。
LeetCode---139. Word Break_第1张图片

思路及解法

动态规划的题目。
设dp[i]为前i个字符是否可以切割。一个字符串S,它的长度为len,如果S能够被“字典集合”(dict)中的单词拼接而成,那么所要满足的条件为:
dp[j] && dict.contains(s.substring(j, i))
如果我们想知道某个子串是否可由dict中的几个单词拼接而成就可以用这样的方式得到结果(满足条件为True, 不满足条件为False)存入到一个boolean数组的对应位置上。需要注意的是,dp[]数组在初始化时的长度应该是len+1,且第一个值为true

代码
class Solution {
    public boolean wordBreak(String s, List wordDict) {
        int len = s.length();
        boolean[] dp = new boolean[len+1];
        dp[0] = true;
        for(int i=1; i<=len; i++){
            for(int j=0; j

你可能感兴趣的:(LeetCode)