Talentd
FleetCode

1160. Find Words That Can Be Formed by Characters

Easy71.5% acceptance7 companies

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] and chars consist of lowercase English letters.

Hints open one at a time

Hint 1
Solve the problem for each string in words independently.
Hint 2
Now try to think in frequency of letters.
Hint 3
Count how many times each character occurs in string chars.
Hint 4
To form a string using characters from chars, the frequency of each character in chars must be greater than or equal the frequency of that character in the string to be formed.
7:23
Still stuck?Read 3 approaches, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def countCharacters(self, words: List[str], chars: str) -> int:
3
Starter codePython 3Spaces: 4
Examples
Input
["cat","bt","hat","tree"]
"atach"
Input
["hello","world","leetcode"]
"welldonehoneyr"
Your code is saved on this device.Solution