博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]题解(python):140-Word Break II
阅读量:5970 次
发布时间:2019-06-19

本文共 1183 字,大约阅读时间需要 3 分钟。

题目来源:

  https://leetcode.com/problems/word-break-ii/


 

题意分析:

  给定一个字符串s和一个字典dict(set),将所有将s有字典dict组成的结果输出。比如s = "catsanddog",

dict = ["cat", "cats", "and", "sand", "dog"].那么结果是["cats and dog", "cat sand dog"]。


 

题目思路:

  我们将问题细化,如果s[:i]在字典dict里面,那么结果就是s[:i]和 solve(s[i + 1:],dict)的笛卡尔乘积。如果直接实现,那么时间复杂度较高,所以这里用动态规划的思想,判断一个字符串是否可以有字典组成。


 

代码(python):

class Solution(object):    def isp(self,s,dict):        dp = [False for i in range(len(s) + 1)]        dp[0] = True        for i in range(1,len(s) + 1):            for j in range(0,i):                if dp[j] and s[j:i] in dict:                    dp[i] = True        return dp[len(s)]    def wordBreak(self, s, wordDict):        """        :type s: str        :type wordDict: Set[str]        :rtype: List[str]        """        ans,tmp = [],""        if s in wordDict:            ans.append(s)        for i in range(len(s)):            tmp += s[i]            if tmp in wordDict:                if self.isp(s[i + 1:],wordDict):                    t = self.wordBreak(s[i+1:],wordDict)                    for j in t:                        ans.append(tmp + " " + j)        return ans
View Code

 

转载于:https://www.cnblogs.com/chruny/p/5443243.html

你可能感兴趣的文章
笔记本进水
查看>>
Nginx配置文件nginx.conf (Apache)
查看>>
jquery和JavaScript区别
查看>>
pxe方式安装gentoo
查看>>
NAT和IPsec并存的几种模型(方案一)
查看>>
SQLServer数据库如何收缩日志空间?
查看>>
windows下tomcat日志输出至catalina.out文件
查看>>
一起学react day1
查看>>
SVN
查看>>
session无法传值解决方案!
查看>>
19.12 添加自定义监控项目 19.13/19.14 配置邮件告警 19.15 测试告警 19.16 不发邮件的问题处理...
查看>>
系统吞吐量(TPS)、用户并发量、性能测试概念和公式
查看>>
通过域名,直接访问到网站主页
查看>>
以太坊合约部署
查看>>
主流的消息队列MQ比较,详解MQ的4类应用场景
查看>>
禁止解析PHP、限制user_agent、php相关配置
查看>>
java的面向对象的四大特征
查看>>
Quick BI 的模型设计与生成SQL原理剖析
查看>>
java中的内省 (Introspector)
查看>>
实现用户自定义Excel模板
查看>>