当前位置: 首页 > 后端技术 > Python

力扣-0524.通过删除字母匹配字典中最长的单词[Python]

时间:2023-03-26 01:06:39 Python

LeetCode0524.通过删除字母匹配字典中最长的单词[中][Python][双指针]标题给定一个字符串和一个字符串字典,找出字典中删除给定字符串的某些字符可以组成的最长字符串。如果有多个可能的结果,则返回具有最小词典顺序的最长单词。如果没有可能的结果,则返回空字符串。示??例1:输入:s="abpcplea",d=["ale","apple","monkey","plea"]Output:"apple"示例2:Input:s="abpcplea",d=["a","b","c"]Output:"a"注意:输入中的所有字符串将只包含小写字母。字典的大小取胜'texceed1,000.输入的所有字符串的长度不会超过1,000.翻译中文题目地址给定一个字符串和一个字符串字典,找到字典中最长的字符串,该字符串可以删除得到给定的一些字符细绳。如果有多个答案,则返回最长且字典序最小的字符串。如果答案不存在,则返回一个空字符串。示例1:输入:s="abpcplea",d=["ale","apple","monkey","plea"]输出:"apple"示例2:输入:s="abpcplea",d=["a","b","c"]输出:"a"描述:所有输入字符串仅包含小写字母。字典的大小不会超过1000。所有输入的字符串长度不会超过1000。思路双指针i指针遍历s字符串,j指针遍历d字典中的每个字符串如果不同,只移动j指针。如果j指针可以移动到字符串的末尾,说明该字符串在s中。比较此时的字符串长度len是否大于之前存储的len。如果它更大,请更新它。如果等于,则取最小的字典顺序。时间复杂度:O(len(d)*len(s))空间复杂度:O(1)PythoncodeclassSolution(object):deffindLongestWord(self,s,d):""":types:str:typed:List[str]:rtype:str"""res=""max=-1forwordind:iflen(s)max:#更新res和maxres=wordmax=len(word)eliflen(word)==max:res=min(res,word)#选择相同长度的字典序最小的词breakreturnres代码地址github链接