LeetCode 524. Longest Word in Dictionary through Deleting (通过删除字母匹配到字典里最长单词)

题目标签:Sort

  对于每一个 字典中的 word, 

    step 1: 先确定它的chars 是不是都出现在s里面。不符合的就不用考虑了。

    step 2: 检查这个word 是否比之前的更长,或者一样长,但是字母顺序更小,是的话需要更新。

 

Java Solution: 

Runtime:  16ms, faster than 88.86% 

Memory Usage: 40.9, less than 32.54%

完成日期:6/16/2020

关键点:利用 i 来计数 确认 word 的 chars 都出现在s里

class Solution {
    public String findLongestWord(String s, List<String> d) {
        String res = "";
        
        // iterate each word in dictionary
        for(String str : d) {
            int i = 0;
            
            // check each char of word appears in s
            for(char c : s.toCharArray()) {
                if(i < str.length() && c == str.charAt(i))
                    i++;
            }
            
            // check need to save this word
            if(i == str.length() && str.length() >= res.length()) {
                if(str.length() > res.length() || str.compareTo(res) < 0) {
                    res = str;
                }
            }
            
        }
        
        return res;
    }
}

参考资料:https://www.cnblogs.com/grandyang/p/6523344.html

LeetCode 题目列表 - LeetCode Questions List

题目来源:https://leetcode.com/

posted @ 2020-06-17 11:35  Jimmy_Cheng  阅读(194)  评论(0编辑  收藏  举报