194. 寻找单词
给定一个字符串
str
,和一个字典
dict
,你需要找出字典里的哪些单词是字符串的子序列,返回这些单词。
样例
例1:
输入:
str="bcogtadsjofisdhklasdj"
dict=["book","code","tag"]
输出:
["book"]
解释:只有book是str的子序列
例2:
输入:
str="nmownhiterer"
dict=["nowhere","monitor","moniter"]
输出:
["nowhere","moniter"]
挑战
|str|<=100000
注意事项
-
|str|<=10002.字典中所有单词长度的总和<=1000(题目保证所有字母均为小写)
public class Solution {
/**
* @param str: the string
* @param dict: the dictionary
* @return: return words which are subsequences of the string
*/
public List<String> findWords(String str, List<String> dict) {
List<String> result = new ArrayList<String>();
for (int i = 0; i < dict.size(); i++) {
boolean has = true;
String temp = dict.get(i);
int k = 0;
for (int j = 0; j < temp.length(); j++) {
boolean equals=false;
for (; k < str.length(); k++) {
if (str.charAt(k)==(temp.charAt(j))) {
equals=true;
break;
}
}
if (!equals){
has=false;
break;
}
}
if (has) {
result.add(temp);
}
}
return result;
}
}