给出一个字符串数组 words 组成的一本英语词典。返回 words 中最长的一个单词,该单词是由 words 词典中其他单词逐步添加一个字母组成。
若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-word-in-dictionary
解答:模拟
class Solution {
public:
string longestWord(vector<string>& words) {
sort(words.begin(), words.end(), [](const string& a, const string& b){
return a.size() != b.size() ? a.size() < b.size() : a > b;
});
string ans = "";
unordered_set<string> record{""};
for(auto word : words){
if(record.count(word.substr(0, word.size() - 1))){
record.emplace(word);
ans = word;
}
}
return ans;
}
};