Leetcode 140 Word Break II

题意:给定一个string以及一个wordDict,要求返回一个vector<string> ,这个vector中的string都是word Dict中的组合

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

Output: ["cats and dog","cat sand dog"]

想法:backtracking, 想象一下每一轮你要干什么,首先拿wordDict中的每个单词去填写,如果对不上号,你就填下一个单词直到最后填到单词末尾就结束了。

cpp 复制代码
class Solution {
public:
    vector<string> ret;
    vector<string> wordBreak(string s, vector<string>& wordDict) {
        dfs(s, "", 0 , wordDict);
        return ret;
    }

    void dfs(string& s, string cur, int st, vector<string>& wordDict) {
        if (st == s.size()) {
            cur.pop_back();
            ret.push_back(cur);
        }
        
        for(auto word : wordDict) {
            if(st + word.size() <= s.size()) {
                if(word == s.substr(st, word.size())) {
                    string temp = cur;
                    cur += word;
                    cur += " ";
                    dfs(s, cur, st+word.size(), wordDict);
                    cur = temp;
                }
            }
        }
    }
};

时间复杂度是指数级别的,递归栈空间是O(n)

相关推荐
惜.己12 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
西电研梦21 小时前
考研倒计时30天丨和西电一起向前!再向前!
人工智能·考研·1024程序员节·西电·西安电子科技大学
惜.己1 天前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
·云扬·1 天前
Java IO 与 BIO、NIO、AIO 详解
java·开发语言·笔记·学习·nio·1024程序员节
网安_秋刀鱼1 天前
PHP代码审计 --MVC模型开发框架&rce示例
开发语言·web安全·网络安全·php·mvc·1024程序员节
HUODUNYUN2 天前
小程序免备案:快速部署与优化的全攻略
服务器·网络·web安全·小程序·1024程序员节
惜.己2 天前
Jmeter的后置处理器(二)
测试工具·github·1024程序员节
惜.己2 天前
Jmeter中的断言(一)
测试工具·jmeter·1024程序员节
cainiao0806052 天前
《物理学进展》
1024程序员节·核心期刊·知网期刊·职称评审
FFDUST3 天前
C++ —— string类(上)
c语言·开发语言·数据结构·c++·stl·1024程序员节