zoukankan      html  css  js  c++  java
  • Leetcode 524. Longest Word in Dictionary through Deleting

    Description: Given a string s and a string array dictionary, return the longest string in the dictionary that can be formed by deleting some of the given string characters. If there is more than one possible result, return the longest word with the smallest lexicographical order. If there is no possible result, return the empty string.

    Link: 524. Longest Word in Dictionary through Deleting

    Examples:

    Example 1:
    Input: s = "abpcplea", dictionary = ["ale","apple","monkey","plea"]
    Output: "apple"
    
    Example 2:
    Input: s = "abpcplea", dictionary = ["a","b","c"]
    Output: "a"
    
    Constraints:
    
        1 <= s.length <= 1000
        1 <= dictionary.length <= 1000
        1 <= dictionary[i].length <= 1000
        s and dictionary[i] consist of lowercase English letters.

    思路: 返回最长的在字典中的单词,如果长度相同,按字母顺序最小的。所以先对字典中的单词排序,长度由大到小,字母顺序由小到大,然后遍历字典,是否单词是s的子串。

    class Solution(object):
        def findLongestWord(self, s, dictionary):
            """
            :type s: str
            :type dictionary: List[str]
            :rtype: str
            """
            dictionary.sort(key=lambda x: (1000-len(x), x))
            for word in dictionary:
                if len(word) > len(s):
                    continue
                i = 0
                for c in s:
                    if i < len(word) and c == word[i]:
                        i += 1
                if i == len(word):
                    return word
            return ''

    日期: 2021-04-03 

  • 相关阅读:
    win7,win10获取屏幕缩放适应截图
    cg语言学习&&阳春白雪GPU编程入门学习
    Unity Plugins的使用方法
    记录Unity的优化tip(不断更新)
    深入理解法线贴图原理
    读香菱学诗
    排序算法学习
    图的算法复习大纲
    Gama Space 和 Linear Space 学习
    BM算法学习
  • 原文地址:https://www.cnblogs.com/wangyuxia/p/14613077.html
Copyright © 2011-2022 走看看