题目描述:
题解:
1.遍历输入字符串licensePlate,将其中的字母全部转为小写,并利用dict_s记录licensePlate每个字母对应的出现次数。
2.对words中每个word做以下处理:初始化flag=0,统计dict_s中每个字母在word的出现次数,如果大于等于dict_s[对应字幕],flag++,如果最终flag==len(dict_s),则说明输入字符串licensePlate中所有的字母都在word中存在。同时如果遇到更短的满足以上要求的word则更新。
class Solution: def shortestCompletingWord(self, licensePlate: str, words: List[str]) -> str: dict_s = {} for i in range(len(licensePlate)): if licensePlate[i]>='a' and licensePlate[i]<='z' or licensePlate[i]>='A' and licensePlate[i]<='Z': lowers = licensePlate[i].lower() if lowers not in dict_s: dict_s[lowers]=1 else: dict_s[lowers]+=1 num = 0 for word in words: flag = 0 for s in dict_s: if word.count(s)>=dict_s[s]: flag = flag+1 if flag == len(dict_s): if num==0: result = word num = 1 else: if len(word)<len(result): result = word return result