[Leet Code] Count the Number of Consistent Strings

Matthew Boyd
2 min readJan 15, 2021

Leetcode: https://leetcode.com/problems/count-the-number-of-consistent-strings/

Problem:

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] and allowed contain only lowercase English letters.

Solution:

class Solution(object):
def countConsistentStrings(self, allowed, words):
"""
:type allowed: str
:type words: List[str]
:rtype: int
"""
counter = 0
for word in words:
stop = 0
for letter in word:
if letter not in allowed:
stop += 1
if stop == 0:
counter += 1

return counter

Explanation:

we create our counter, then we cyce through the words, and then again through each of the letters in the word. We check if there are any letters that are not in the “allowed” letters, and if so, we increment a stop variable. If stop != 0, that means that there were some letters that weren’t in the allowed variable, so we continue on, otherwise, we increment the counter variable if stop == 0.

--

--