leetcode动态规划之判断一个字符串是否是给定字符串数组组合出来的
2016-09-03 14:10
417 查看
简单动态规划,dp[i]表示字符串s[0~i]是否可分的bool值。
画表格可以理解:
class Solution {
public:
bool wordBreak(string s, unordered_set<string> &dict) {
int len=s.length();
vector<bool> dp(len+1,false);
dp[0]=true;
for(int i=0;i<len;i++)
for(int j=i;dp[i]&&j<len;j++){
if(dict.find(s.substr(i,j-i+1))!=dict.end())
dp[j+1]=true;
}
return dp[len];
}
};
画表格可以理解:
class Solution {
public:
bool wordBreak(string s, unordered_set<string> &dict) {
int len=s.length();
vector<bool> dp(len+1,false);
dp[0]=true;
for(int i=0;i<len;i++)
for(int j=i;dp[i]&&j<len;j++){
if(dict.find(s.substr(i,j-i+1))!=dict.end())
dp[j+1]=true;
}
return dp[len];
}
};
相关文章推荐
- 给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”。
- 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字
- 给一个字符串数组,判断其是否是首尾相连的
- JS 判断一个字符串是否包含在一个数组中
- 判断一个给定的字符串通过循环移位是否可以包含另一个字符串
- T.array.contains判断一个数组中是否包含给定元素
- 判断一个值或者字符串是否在数组中
- 判断一个字符串是否存在于一个字符串数组中
- 把一个数组里面的每一个字符串取出来 判断这个字符串的长度是不是大于10 判断完了 再放到一个数组里面
- matlab 判断cell数组里是否存在一个字符串
- 给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
- 判断一个有序数组中是否有两个数的和等于给定的数
- 给定一个由括号([{)]}其中之一或多个组成的字符串判断是否符合左右括号成对标准,不同括号可任意嵌套
- 1.实现一个函数,可以左旋字符串中的k个字符。 AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 2.判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1
- Array.BinarySearch判断一个字符串是否包含在一个字符数组中
- 判断一个字符串是否在一个数组中
- 给定一个数组,判断这个数组的元素是否是在一个序列
- JAVA 如何判断一个字符串是否在一个字符串数组中?(好的编程习惯)
- 判断一个字符串是否在一个字符串数组里
- 1.实现一个函数,可以左旋字符串中的k个字符。 AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 2.判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1