题目:
给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。
示例 1:
输入:
s = “abpcplea”, d = [“ale”,“apple”,“monkey”,“plea”]
输出:
“apple”
示例 2:
输入:
s = “abpcplea”, d = [“a”,“b”,“c”]
输出:
“a”
说明:
所有输入的字符串只包含小写字母。
字典的大小不会超过 1000。
所有输入的字符串长度不会超过 1000。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码:
class Solution {
public:
string findLongestWord(string s, vector<string>& d) {
vector<string>result;
for(int i=0;i<d.size();i++){
string temp=d[i];
int begin1=0;
int begin2=0;
bool b=true;
while(begin1<s.size()&&begin2<temp.size()){
if(s[begin1]==temp[begin2]){
begin1++;
begin2++;
}
else
begin1++;
}
if(begin2==temp.size())
result.push_back(temp);
}
int maxsize=0;
string res="";
for(int i=0;i<result.size();i++){
if(result[i].size()>maxsize){
maxsize=result[i].size();
res=result[i];
}
else if(result[i].size()==maxsize){
if(result[i]<res){
res=result[i];
maxsize=result[i].size();
}
}
}
return res;
}
};