leetcode 1684. Count the Number of Consistent Strings (python)

816 阅读1分钟

描述

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.

Note:

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.

解析

根据题意,只需要遍历每个 word 中的每个字符 c ,如果 c 不存在于 allowed ,那么该 word 不符合题意将其排除后继续进行下一个 word 的判断,遍历结束返回剩下的 word 的个数即可。

解答

class Solution(object):
    def countConsistentStrings(self, allowed, words):
        """
        :type allowed: str
        :type words: List[str]
        :rtype: int
        """
        res = 0
        allowed = set(allowed)
        for word in words:
            for c in word:
                if c not in allowed:
                    res += 1
                    break
        return len(words) - res
        	      
		

运行结果

Runtime: 180 ms, faster than 99.63% of Python online submissions for Count the Number of Consistent Strings.
Memory Usage: 16.3 MB, less than 15.29% of Python online submissions for Count the Number of Consistent Strings.

原题链接:leetcode.com/problems/co…

您的支持是我最大的动力