194 · 寻找单词
给定一个字符串str,和一个字典dict,你需要找出字典里的哪些单词是字符串的子序列,返回这些单词。
|str|<=1000
2.字典中所有单词长度的总和<=1000
(题目保证所有字母均为小写)
样例
例1:
输入:
str="bcogtadsjofisdhklasdj"
dict=["book","code","tag"]
输出:
["book"]
解释:只有book是str的子序列
例2:
输入:
str="nmownhiterer"
dict=["nowhere","monitor","moniter"]
输出:
["nowhere","moniter"]
bool find(string &src,string&dst)
{
int len = src.size();
int find = 0;
int j=0;
for(int i=0;i<dst.size();)
{
for(;j<src.size();)
{
if(dst[i] == src[j])
{
find++;
j++;
break;
}
else
{
j++;
}
}
if(j>=len && find < dst.size())
{
return false;
}
else
{
i++;
}
}
return true;
}
vector<string> findWords(string &str, vector<string> &dict) {
// Write your code here.
vector<string> ret;
for(int i=0;i<dict.size();i++)
{
if(find(str,dict[i]))
{
ret.push_back(dict[i]);
}
}
return ret;
}