1160. Find Words That Can Be Formed by Characters
Easy
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.
Note:
1 <= words.length <= 1000
1 <= words[i].length, chars.length <= 100
- All strings contain lowercase English letters only.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | class Solution { public int countCharacters(String[] words, String chars) { int[] counts = new int[26]; for(char c : chars.toCharArray()) { counts[c-'a']++; } int ret = 0; for(String w : words) { int[] counts1 = counts.clone(); boolean match = true; for(char c:w.toCharArray()) { if(--counts1[c-'a'] < 0) { match = false; break; } } if(match) { ret += w.length(); } } return ret; } } |
No comments:
Post a Comment