博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 140 单词拆分2 word break II
阅读量:6800 次
发布时间:2019-06-26

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

 

单词拆分2,递归+dp,

需要使用递归,同时使用记忆化搜索保存下来结果,c++代码如下

 

1 class Solution { 2 public: 3     //定义一个子串和子串拆分(如果有的话)的映射 4     unordered_map
>m; 5 vector
wordBreak(string s, vector
& wordDict) { 6 if(m.count(s)) return m[s];//当映射的子串有s说明已经判断完了返回拆分m[s] 7 if(s.empty()) return {
""};//假如s是空的返回空串 8 vector
res; 9 for(string word: wordDict){10 if(s.substr(0,word.size())!=word) continue;//在s开头找到字典中的词;11 vector
rem=wordBreak(s.substr(word.size()),wordDict);//rem是剩下的子串拆分,递归调用wordBreak12 for(string str:rem){13 res.push_back(word+(str.empty() ? "" : " ")+str);//str非空时,前面加个空格后面再加单词;14 }15 }16 return m[s]=res;17 }18 };

参考:

 

转载于:https://www.cnblogs.com/joelwang/p/10328210.html

你可能感兴趣的文章
Linux at命令定时发送邮件具体用法
查看>>
hudson无法访问问题,linux防火墙问题
查看>>
arcEngine 10 C++ 坐标转换【坐标系的投影】
查看>>
Java6 WebService学习
查看>>
命名规则 : 匈牙利法则
查看>>
适用于单选的jQuery Auto-complete插件SelectToAutocomplete
查看>>
我的Windows 8下看漫画程序差不多可以用了
查看>>
rabbitmq使用__python客户端(消息接收者)
查看>>
如何实现一套鼠标键盘控制二台主机
查看>>
html5 手机页面
查看>>
Ubuntu 配置VNC以及使用VNC连接时,无法显示系统菜单栏,解决方法
查看>>
c# 如何通过反射 获取\设置属性值、
查看>>
分享:Apache OpenNLP 1.5.3 发布
查看>>
PCB_栅格大小设置
查看>>
在eclipse 的整个工程中查找字符串
查看>>
[转]Android中的Intent详细讲解
查看>>
电商也要懂的实体渠道实战知识zz
查看>>
命令行管理远程windows.(Remote Command Line On Windows)
查看>>
调用webservice使用URLConnection调用webservice
查看>>
父亲节例行吐槽
查看>>