【LeetCode】统计一致字符串的数目 Java 题解
题目描述
给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串 。
请你返回 words 数组中 一致字符串 的数目。
复制代码
思路分析
今天的算法题目是字符串处理题目,题目要求计算出一致字符串的长度。当一个字符串的每一个字符都在 allowed,就是一致字符串。
这个问题需要判断的就是包含的关系,我们可以使用 HashSet 或者 HashMap 来解决。HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。结合这个题目的场景,我们使用 HashSet。首先遍历 allowed 构造成 hashset 结构,然后分别遍历 words 中的每一个 word 判断字符是否在 allowed 中。如果满足条件,则答案递增。具体实现代码如下,供参考。
通过代码
复制代码
总结
普通算法的时间复杂度是 O(n),空间复杂度是 O(n)。
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【Albert】的原创文章。
原文链接:【http://xie.infoq.cn/article/4f0192cf4a23d337d3ad04c24】。文章转载请联系作者。
评论