# 1048. Longest String Chain ###### tags: `Leetcode` `Medium` ## 思路 相比于每次加一个字符,可以反过来看每次减一个字符 先按照长度把所有字符排序 拿到任何一个字符串之后,把每个位置的字母都尝试删掉一遍,如果删掉之后这个字母的字符串有没有在words里面,更新现在的结果 ## Code ```java= class Solution { public int longestStrChain(String[] words) { Arrays.sort(words, (a,b)->(a.length()-b.length())); Map<String, Integer> dp = new HashMap<>(); int ans = 1; for(String word:words){ dp.put(word, 1); for(int i=0; i<word.length(); i++){ String tmp = word.substring(0,i)+word.substring(i+1); if(dp.containsKey(tmp) && dp.get(tmp)+1>dp.get(word)){ dp.put(word, dp.get(tmp)+1); } } ans = Math.max(ans, dp.get(word)); } return ans; } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up