博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetCode]Word Break
阅读量:5233 次
发布时间:2019-06-14

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

Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.

For example, given

s = "leetcode",
dict = ["leet", "code"].

Return true because "leetcode" can be segmented as "leet code".

字符匹配问题,值得注意的有一点:对一个字符从小到大找过没有匹配之后还要从大到小找一次,如果还是没有匹配才是真的没有匹配

testcase string s = "aaaaaaa", set<String> :{"aaa","aaaa"}就是这样的例子。

1 #include 
2 #include
3 #include
4 using namespace std; 5 class Solution { 6 public: 7 bool wordBreak(string s, unordered_set
&dict) { 8 unordered_set
::iterator iter; 9 string substr1,substr2;10 substr1 = substr2 = s;11 //short->long12 for(int i = 1; i<= s.size();i++){13 substr1 = s.substr(0,i); 14 iter = dict.find(substr1);15 while(iter == dict.end()&& i < s.size()){16 substr1 = s.substr(0,++i);17 iter = dict.find(substr1);18 }19 if(iter == dict.end() && i == s.size()) break;20 s = s.substr(i);21 i = 0;22 }23 if(s.size() == 0) return true;24 //long->short25 s = substr2;26 for(int i = s.size(); i > 0;i--){27 substr2 = s.substr(0,i); 28 iter = dict.find(substr2);29 while(iter == dict.end()&& i > 0){30 substr2 = s.substr(0,--i);31 iter = dict.find(substr2);32 }33 if(iter == dict.end() && i == 0) break;34 s = s.substr(i);35 i = s.size()+1;36 }37 if(s.size() == 0) return true;38 return false;39 }40 };

 

转载于:https://www.cnblogs.com/marylins/p/3586637.html

你可能感兴趣的文章
统计某一句话里面 元音字母的个数
查看>>
Python 拓展之详解深拷贝和浅拷贝
查看>>
[荐书]超越对手——软件项目经理的18种实用技能
查看>>
LCA统计
查看>>
全局变量抛异常的问题
查看>>
ZendFramework-2.4 源代码 - 开始
查看>>
python3代码运行器
查看>>
《断弦》感想
查看>>
Matlab实现求a到b被c整除的个数
查看>>
Alphabet 帝国
查看>>
jqueryUI 1.10
查看>>
iOS开发系列--打造自己的“美图秀秀”
查看>>
StoryBoard拆分(Storyboard References)
查看>>
Python模块之pexpect
查看>>
java 静态变量初始化
查看>>
【python之路30】反射
查看>>
IDisposable
查看>>
Java 基础知识点(必知必会其二)
查看>>
基于jQuery个性圆圈倒计时特效
查看>>
斐讯k2
查看>>