二刷139. Word Break

Medium
这道题之前一刷用的dfs做,现在又不会那个方法了,说明我dfs真的弱,现在用dp做一下. 这里dp[i]表示s.substring(0, i)是否满足要求.

class Solution {
    public boolean wordBreak(String s, List<String> wordDict) {
        if (s == null || s.length() == 0){
            return true;
        }
        //dp[i] stands for whether s.substring(0, i) could be segmented into a one or more dictionary words.
        boolean[] dp = new boolean[s.length() + 1];    
        dp[0] = true;
      
        for (int i = 1; i <= s.length(); i++){
            for (int j = 0; j < i; j++){
                if (dp[j] && wordDict.contains(s.substring(j, i))){
                    dp[i] = true;
                    break; 
                }    
            }
        }
        return dp[s.length()];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容