You are given a string allowed
consisting of distinct characters and an array of strings words
. A string is consistent if all characters in the string appear in the string allowed
.
Return the number of consistent strings in the array words
.
Example 1:
Input: allowed = "ab", words = ["ad","bd","aaab","baa","badab"] Output: 2 Explanation: Strings "aaab" and "baa" are consistent since they only contain characters 'a' and 'b'.
Example 2:
Input: allowed = "abc", words = ["a","b","c","ab","ac","bc","abc"] Output: 7 Explanation: All strings are consistent.
Example 3:
Input: allowed = "cad", words = ["cc","acd","b","ba","bac","bad","ac","d"] Output: 4 Explanation: Strings "cc", "acd", "ac", and "d" are consistent.
Constraints:
1 <= words.length <= 104
1 <= allowed.length <= 26
1 <= words[i].length <= 10
- The characters in
allowed
are distinct. words[i]
andallowed
contain only lowercase English letters.
class Solution:
def countConsistentStrings(self, allowed: str, words: List[str]) -> int:
res = 0
chars = set(allowed)
for word in words:
find = True
for c in word:
if c not in chars:
find = False
break
if find:
res += 1
return res
class Solution {
public int countConsistentStrings(String allowed, String[] words) {
boolean[] chars = new boolean[26];
for (char c : allowed.toCharArray()) {
chars[c - 'a'] = true;
}
int res = 0;
for (String word : words) {
boolean find = true;
for (char c : word.toCharArray()) {
if (!chars[c - 'a']) {
find = false;
break;
}
}
if (find) {
++res;
}
}
return res;
}
}
class Solution {
public:
int countConsistentStrings(string allowed, vector<string>& words) {
vector<bool> chars(26, false);
for (char c : allowed) {
chars[c - 'a'] = true;
}
int res = 0;
for (string word : words) {
bool find = true;
for (char c : word) {
if (!chars[c - 'a']) {
find = false;
break;
}
}
if (find) ++res;
}
return res;
}
};
func countConsistentStrings(allowed string, words []string) int {
chars := [26]bool{}
for _, c := range allowed {
chars[c-'a'] = true
}
res := 0
for _, word := range words {
find := true
for _, c := range word {
if !chars[c-'a'] {
find = false
break
}
}
if find {
res++
}
}
return res
}