leetcode-----139. 单词拆分

Posted 景云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-----139. 单词拆分相关的知识,希望对你有一定的参考价值。

代码

/*
 * @lc app=leetcode.cn id=139 lang=cpp
 *
 * [139] 单词拆分
 */

// @lc code=start
class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {
        typedef unsigned long long ULL; 
        unordered_set<ULL> hash;
        const int P = 131;
        for (auto& word: wordDict) {
            ULL h = 0;
            for (auto c: word) h = h * P + c;
            hash.insert(h);
        }

        int n = s.size();
        vector<bool> f(n + 1);
        f[0] = true;
        s = ‘ ‘ + s;
        for (int i = 0; i < n; ++i) {
            if (f[i]) {
                ULL h = 0;
                for (int j = i + 1; j <= n; ++j) {
                    h = h * P + s[j];
                    if (hash.count(h)) f[j] = true;
                }
            }
        }
        return f[n];
    }
};
// @lc code=end

以上是关于leetcode-----139. 单词拆分的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 139. 单词拆分 ☆☆☆(动态规划 回溯)

leetcode 139.单词拆分

LeetCode——139. 单词拆分

LeetCode 139. 单词拆分

leetcode-139回溯超时动态规划单词拆分

leetcode139.单词拆分