博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】Word Break(python)
阅读量:6001 次
发布时间:2019-06-20

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

思路是这种。我们从第一个字符開始向后依次找,直到找到一个断句的地方,使得当前获得的子串在dict中,若找到最后都没找到。那么就是False了。

在找到第一个后,接下来找下一个断句处,当然是从第一个断句处的下一个字符開始找连续的子串,可是这时与第一个就稍有不同。比方说word=‘ab’, dict={ 'a', ab', ...},在找到a后,接下来处理的是b。我们发现b不在dict中,可是我们发现b能够和a结合,形成ab,而ab在dict中。所以这里的每一个子串就能够有三种选择。要么自己单独作为个体到dict中找,要么就跟前面的结合起来进行找。要么就是等,等后面的新的字符。构成更长的子串。

可是还有问题,上面我们说的是跟前面的结合起来找。那么这个前面是个什么定义?开头?开头后的第一个? 第二个?所以我们要记录一些信息。来表示前面的子串,是从哪里断开,从而满足条件的。那么我们就能够依次与离当前子串近的部分进行结合。比方:word = ’aab‘, dict = { a, aab }。处理a时。是满足的,下一个a。也是满足的,处理 b 时,b不在dict中,那么就与前面的a结合, 形成 ab,发现不在dict 中,那么继续与前面的结合,形成 aab,发如今dict 中,那么 word 总体就满足条件。

class Solution:    # @param s, a string    # @param dict, a set of string    # @return a boolean    def wordBreak(self, s, dict):        if len( s ) == 0 or len(dict) == 0:            return False        #初始长度为0,表示的是之前的元素已经搞定,能够从0開始继续向后        dp = [ 0 ]        # s串的长度,[1, len ( s )]。我们挨个去搞定兴许的断句        for i in range(1, len( s ) + 1):            #前面全部的合法的断句处,也就是全部的合法的起始点,由于若前面的都没搞定。不能够继续后面的            for j in xrange( len( dp ) - 1, -1, -1):                substr = s[dp[j] : i]                if substr in dict:                    dp.append(i)                    break        return dp[-1] == len( s )

你可能感兴趣的文章
物联网市场,软件厂商最可能成为领导者?
查看>>
微软简化小型企业获取/阻止Windows 10更新体验
查看>>
Android 单元测试用法 简介
查看>>
破解本地MySQL数据库密码
查看>>
Qt之国际化
查看>>
《JavaScript构建Web和ArcGIS Server应用实战》——2.3 使用ArcGIS API for JavaScript创建应用程序的基本步骤...
查看>>
《CCNP TSHOOT 300-135认证考试指南》——2.10节检查命令的记忆程度
查看>>
《Android游戏编程入门经典》——1.6节Android硬件规格
查看>>
调查称 IT 行业大学毕业生工作 3 年薪资翻番
查看>>
《Android框架揭秘》——1.1节Android源代码组成
查看>>
《SolidWorks 2016中文版完全自学手册)》——2.2 草图绘制
查看>>
FCC:用户破解路由器合法
查看>>
《ANSYS Workbench 16.0超级学习手册》——1.3 Workbench与SolidWorks软件集成设置
查看>>
红帽继续依靠新 OpenStack 和 Cloud Platform Suite 云转型
查看>>
《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.20节使用效果
查看>>
Mozilla 终止支持 1024 位 CA 证书
查看>>
《计算机网络:自顶向下方法(原书第6版)》一1.7 计算机网络和因特网的历史...
查看>>
搞一搞Main Thread Checker
查看>>
《通信技术导论(原书第5版)》——2.10 附录
查看>>
数据说:2015,中纪委处理县处级以上干部数增幅超50%
查看>>