首页 > 其他 > 详细

Word Break

时间:2014-08-25 22:46:55      阅读:377      评论:0      收藏:0      [点我收藏+]

这个题目思路:在一个bool型数组中,像接力一样传递匹配成功,传递到最后一个字符,说明匹配成功。说的明白点就是从第i(0~n)个字符开始向后与子串进行匹配,匹配的数组中标记为true,循环比较。

需要注意的是:unordered_set的count(T s)查看是否包含该元素。string类的substr(pos,n)函数返回从pos位置开始的n个字符。

 1 class Solution {
 2 public:
 3     bool wordBreak(string s, unordered_set<string> &dict) {
 4         int MainLen = s.size();
 5         vector<bool> dp(MainLen,false);
 6         dp[0] = true;
 7         for(int i=0;i<MainLen;i++)
 8         {
 9             if(dp[i])
10             {
11                 for(int j = i;j<MainLen;j++)
12                 {
13                     if(dict.count(s.substr(i,j-i+1)))
14                     {
15                         dp[j+1] = true;
16                     }
17                 }
18             }
19         }
20         return dp[MainLen];
21     }
22 };

 

Word Break

原文:http://www.cnblogs.com/ZhangYushuang/p/3935994.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!