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.
给你一个由不同字符组成的字符串 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 ) ,n为allowed长度,m为word中字符串的长度
。空间复杂度:O ( 1 )