Lc-1684
categories: [LeetCode]
tags: [String, easy]
1684. Count the Number of Consistent Strings
题目大意:
给定一个只含有独特字母的字符串allowed和一个字符串数组words,如果某个元素中所有字母都出现在
字符串allowed中, 我们就说这个字符串是相同一致的。
返回相同一致的字符串的个数在给定字符串数组中
解题思路:
这道题可以通过HashSet和遍历字符串中的每一个元素来统计符合规则的个数。
先将每一个allowed字符串中的字母都保存在初始化好的HashSet中,
然后遍历每一个words中的字符串,如果发现当前遍历字符串中的字母不在HashSet中,
则break跳出当前string的遍历
或是发现当前遍历字符串字母的下标等于当前字符串长度-1, 则符合规则的个数加一,
然后跳转到下一个字符串, 最后返回 个数。
注意:
None
复杂度:
Time Coplexity: O(lw * s), w means the length of words, s means the length of string
Space Complexity:
Code示例:
class Solution {
public int countConsistentStrings(String allowed, String[] words) {
Set<Character> set = new HashSet<>();
for (Character c : allowed.toCharArray()) {
set.add(c);
}
int ans = 0;
for (String s : words) {
char[] ch = s.toCharArray();
for (int i = 0; i < ch.length; i++) {
if (!set.contains(ch[i])) break;
if (i == ch.length-1) ans++;
}
}
return ans;
}
}