LeetCode-1160-拼写单词
2020-10-24 本文已影响0人
阿凯被注册了
给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。
假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。
注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。
返回词汇表 words 中你掌握的所有单词的 长度之和。
image.png
解题思路:
- 先统计chars中各字母的出现次数;
- 遍历words,统计其中字符串中各字母的出现次数,均小于chars中的次数;
Python3代码:
class Solution:
def countCharacters(self, words: List[str], chars: str) -> int:
ans = 0
dict_char = {i:chars.count(i) for i in chars}
for word in words:
flag=1
for i, cnt in {i:word.count(i) for i in word}.items():
if i not in dict_char or cnt>dict_char[i]:
flag=0
break
if flag==1:
ans+= len(word)
return ans