LeetCode-1160-拼写单词

2020-10-24  本文已影响0人  阿凯被注册了

给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。
假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。
注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。
返回词汇表 words 中你掌握的所有单词的 长度之和。


image.png

解题思路:

  1. 先统计chars中各字母的出现次数;
  2. 遍历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
上一篇下一篇

猜你喜欢

热点阅读