class Solution {
public:
string findLongestWord(string s, vector<string>& dictionary)
{
int n = dictionary.size();
string t;
int s_index = s.size() - 1;
int t_index = 0;
int delete_s = 0;
int min_de = INT_MAX;
int min_index = 0;
int can = 0;
int de = 0;
int index = 0;
for(int i = 0; i < n; i++)
{
de = 0;
delete_s = 0;
s_index = s.size() - 1;
t = dictionary[i];
t_index = t.size() - 1;
index = 0;
while(s_index >= 0 && t_index >= 0 && s.size() >= t.size())
{
if(s[s_index] == t[t_index])
{
s_index--;
t_index--;
index = 1;//记录具有相等字符的数
}
else
{
s_index--;
de++;
}
}
if(t_index == -1 && index > 0)
{
delete_s = s_index + 1 + de;
can++;//记录可通过删除匹配到的单词数量
if(delete_s < min_de)
{
min_de = delete_s;
min_index = i;
}
else if(delete_s == min_de)
{
min_de = delete_s;
if(dictionary[min_index].compare(dictionary[i]) > 0) min_index = i;
}
}
}
return can > 0 ? dictionary[min_index] : "";
}
};
524. 通过删除字母匹配到字典里最长单词
最新推荐文章于 2024-07-13 19:27:27 发布