博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-140- Word Break II
阅读量:7107 次
发布时间:2019-06-28

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

题目阐述:
广度搜索问题。 计算出所有可能的情况。衔接点在于segs的前后连贯,拼成所有的满足条件的segs前后两个seg要连续。递归问题,要记得设置终止退出条件elems = {len(s): ['']} 设置成dict形式,就不需要过程中copy了,直接在此进行叠加累计
应用:将一个连续序列分成所有元素可能的组合情况。可以用list进行组装,也可以用dict形式进行组装。
重点:==> if i not in elems: 明确不必要的地方,可以不用去进行计算。
class Solution:    def wordBreak(self, s, wordDict):        elems = {len(s): ['']}        wordDict = set(wordDict)        len_dict = set(len(w) for w in wordDict)        def sentences(i):            if i not in elems:                iters=list()                for len_iter in len_dict:                    cur_part=s[i:i+len_iter]                    if cur_part and cur_part in wordDict:                        # print('cur_part==>',cur_part)                        # elems_iter=list()                        elem_cur=cur_part                        for item in sentences(i+len_iter):                            # print('elem_cur==>',elem_cur)                            iterow= elem_cur + (item and ' '+item)                            # print('iter==>',iterow)                            iters.append(iterow)                    # print('iters==>',iters)                elems[i]=iters            return elems[i]        result=sentences(0)        # print(elems)        return result

转载地址:http://flvhl.baihongyu.com/

你可能感兴趣的文章
TNS-12537: TNS:connection closed ORA-609错误处理
查看>>
记我的第一次腾讯游戏策划面试
查看>>
2017.12.21 2周4次课
查看>>
VMware ESXI 虚拟磁盘工具 - vmkfstools
查看>>
决心书
查看>>
inux命令之dot - 绘制DOT语言脚本描述的图形
查看>>
Row Cache For InnoDB 第二版优化(附带安装和配置说明)
查看>>
第十一课-布局反射器
查看>>
我的友情链接
查看>>
linux 管理参数调节
查看>>
BOM详解
查看>>
2017-3-27日碎碎念
查看>>
我的友情链接
查看>>
配置linux批量修改密码,含自动方式
查看>>
SQL Server会写入哪些注册表?
查看>>
ORACLE 归档模式
查看>>
OFFICE 2007 SP3后续补丁微软官方下载地址
查看>>
Windows Phone 联系人管理
查看>>
zabbix监控redis多实例
查看>>
启动流程
查看>>