码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-08-03 23:33:50      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:bool   typedef   cto   cpp   --   href   pre   https   star   

代码

/*
 * @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. 单词拆分

标签:bool   typedef   cto   cpp   --   href   pre   https   star   

原文地址:https://www.cnblogs.com/clown9804/p/13430484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!