class Solution {
public:
//某字符串是否可以通过s删除字符得到
bool isCan(string s,string str){
int i = 0;
int j = 0;
while(i<s.size()&&j<str.size()){
if(s[i] == str[j]){
i++;j++;
}else{
//不等
i++;
}
if(j==str.size()){
//比完了 可以通过s删除得到
return true;
}
}
return false;
}
//比较函数
static bool cmp(string s1,string s2){
if(s1.size()>s2.size()){
return true;
}
if(s1.size()==s2.size() && s1<s2){
return true;
}
return false;
}
string findLongestWord(string s, vector<string>& dictionary) {
//将字典按照长度排个序 并且按照字典序排
sort(dictionary.begin(),dictionary.end(),cmp);
for(string str:dictionary){
if(isCan(s,str)){
return str;
}
}
return "";
}
};
力扣算法篇: 通过删除字母匹配到字典里最长单词
最新推荐文章于 2024-06-03 20:46:43 发布