力扣每日一题之最短补全词
给你一个字符串licensePlate和一个字符串数组words,请你找出并返回words中最短补全词。
补全词是一个包含licensePlate中所有字母的单词,在所有补全词中,最短的那个就是最短补全词。
- 在匹配
licensePlate中的数字或空格。 - 不区分大小写
- 如果某个字母在
licensePlace中出现不止一次,那么该字母在补全词中的出现的次数也应当一致或者更多。
例如:licensePlate=aBc 12c,
那么他的补全词应当包含字母a、b忽略大小写和两个c,可能的补全词有abccdef、caaacab以及cbca。
请你找出并返回words中的最短补全词。题目数据中保证一定存在一个最短补全词。当有多个单词都符合最短补全词的匹配条件时区words中最靠前的那个。
方法一:统计字符出现次数
根据题意,先统计licesePlate中每个字母的出现次数(忽略大小写),然后遍历words中的每个单词,若26个英文字母在该单词中初选次数均小于licesePlate中才出现的次数,则该单词是一个补全词。返回最短且最靠前的补全词。
1 | package main |