zoukankan      html  css  js  c++  java
  • 140. Word Break II(js)

    140. Word Break II

    Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences.

    Note:

    • The same word in the dictionary may be reused multiple times in the segmentation.
    • You may assume the dictionary does not contain duplicate words.

    Example 1:

    Input:
    s = "catsanddog"
    wordDict = ["cat", "cats", "and", "sand", "dog"]
    Output:
    [
      "cats and dog",
      "cat sand dog"
    ]
    

    Example 2:

    Input:
    s = "pineapplepenapple"
    wordDict = ["apple", "pen", "applepen", "pine", "pineapple"]
    Output:
    [
      "pine apple pen apple",
      "pineapple pen apple",
      "pine applepen apple"
    ]
    Explanation: Note that you are allowed to reuse a dictionary word.
    

    Example 3:

    Input:
    s = "catsandog"
    wordDict = ["cats", "dog", "sand", "and", "cat"]
    Output:
    []
    题意:将字符串切割,求出所有情况满足子串都在wordDict中存在
    /**
     * @param {string} s
     * @param {string[]} wordDict
     * @return {string[]}
     */
    var wordBreak = function(s, wordDict) {
        var res = [];
        var from = [];
        from[0] = [0];
        var wordDict=new Set(wordDict);
        for (var i = 1; i <= s.length; i++) {
            from[i] = [];
            for (var j = 0; j < i; j++) {
              if (from[j].length && wordDict.has(s.substring(j, i))) {
                from[i].push(j);
              }
            }
        }
        build(s.length, '');
        return res;
    
        function build(idx, suffix) {
            if (!idx) return res.push(suffix);
            from[idx].forEach(function(from) {
              build(from, suffix === '' ? s.substring(from, idx) : s.substring(from, idx) + ' ' + suffix);
            })
        }
    }

    出处:https://leetcode.com/problems/word-break-ii/discuss/44384/Share-my-DP-JavaScript-solution



  • 相关阅读:
    滚动条滚动方向
    阶乘函数-尾递归
    返回顶部
    CommonJS
    vuessr
    随机字符串
    indexedDB
    深层次选择器
    Vue3.0简单替代Vuex
    shell 学习笔记
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/11006721.html
Copyright © 2011-2022 走看看