美文网首页
1048. Longest String Chain

1048. Longest String Chain

作者: 铭小狮子酱 | 来源:发表于2020-06-07 09:58 被阅读0次

思路:
动态规划
用一个字典,map记录每个单词最长的chain值
将所有单词按长度从小到大排序,对每个单词,查询缺少一个字母的单词的最长的chain值。

class Solution {
public:
    int longestStrChain(vector<string>& words) {
        sort(words.begin(), words.end(), [](string& s1, string& s2){
            return s1.length() < s2.length();
        });
        
        unordered_map<string, int> dp;
        int res = -1;
        for(auto& word : words){
            for(int i = 0; i < word.length(); i++){
                dp[word] = max(dp[word], dp[word.substr(0, i)+word.substr(i+1)] + 1);
            }
            res = max(res, dp[word]);
        }
        return res;
    }
};

相关文章

网友评论

      本文标题:1048. Longest String Chain

      本文链接:https://www.haomeiwen.com/subject/utnqtktx.html