You are given a string
allowed
consisting of distinct characters and an array of stringswords
. A string is consistent if all characters in the string appear in the stringallowed
.Return the number of consistent strings in the array
words
.
给你一个由不同字符组成的字符串
allowed
和一个字符串数组words
。如果一个字符串的每一个字符都在allowed
中,就称这个字符串是 一致字符串 。请你返回
words
数组中 一致字符串 的数目。
被阳务运动无语到的一天…
-
思路:使用哈希表统计allowed中出现的字母,遍历words中的每个word出现的字母,如果字母都存在yu哈希表中,那么count加1
-
实现
class Solution { public int countConsistentStrings(String allowed, String[] words) { boolean[] table = new boolean[26]; for (int i = 0; i < allowed.length(); i++){ table[allowed.charAt(i)-'a'] = true; } int count = 0; for (String word : words){ boolean flag = true; for (char c : word.toCharArray()){ if (!table[c-'a']){ flag = false; break; } } if (flag){ count++; } } return count; } }
-
复杂度
- 时间复杂度: O ( n + ∑ m i ) O(n+\sum{m_i}) O(n+∑mi),n为allowed长度,m为word中字符串的长度
- 空间复杂度: O ( 1 ) O(1) O(1)