Description
You are given an array of strings words
and a string chars
.
A string is good if it can be formed by characters from chars
(each character can only be used once).
Return the sum of lengths of all good strings in words.
Β
Example 1:
Input: words = ["cat","bt","hat","tree"], chars = "atach" Output: 6 Explanation: The strings that can be formed are "cat" and "hat" so the answer is 3 + 3 = 6.
Example 2:
Input: words = ["hello","world","leetcode"], chars = "welldonehoneyr" Output: 10 Explanation: The strings that can be formed are "hello" and "world" so the answer is 5 + 5 = 10.
Β
Constraints:
1 <= words.length <= 1000
1 <= words[i].length, chars.length <= 100
words[i]
andchars
consist of lowercase English letters.
Solution
Python3
class Solution:
def countCharacters(self, words: List[str], chars: str) -> int:
res = 0
for word in words:
cnt = Counter(chars)
ok = True
for x in word:
if cnt[x] == 0:
ok = False
break
cnt[x] -= 1
if ok:
res += len(word)
return res