• LeetCode刷题_140


    class Solution {
    public:
        vector<string> wordBreak(string s, vector<string>& wordDict) {
            if (m.count(s)) return m[s];	//判断map中有没有s
            if (s.empty())  return {""};
            vector<string> res;
            for (string word : wordDict) {	
                if (s.substr(0, word.size()) != word) continue;	//进行前缀判断
                for (string r : wordBreak(s.substr(word.size()), wordDict)) {	
                //DFS搜索 返回值为当前前缀对应的解 被分割好了
                	//sustr去除前缀
                    res.push_back(word + (r.empty() ? "" : " ") + r);	
                    //整合答案
                }
            }
            return m[s] = res;
        }
    private:
        unordered_map<string, vector<string>> m;
    };
    
    作者:LightAc
    出处:https://www.cnblogs.com/lightac/
    联系:
    Email: dzz@stu.ouc.edu.cn
    QQ: 1171613053
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    死锁篇
    java线程池
    sql server 多行数据指定字符串拼接
    动态提交 表格
    ABP
    DDD学习
    sql 语句插入数据返回id
    Post方式提交,通过上下文HttpContext,Request[""]获取
    JQ的过滤隐藏
    sql 查询有多少行
  • 原文地址:https://www.cnblogs.com/lightac/p/12525391.html
Copyright © 2020-2023  润新知