【LeetCode】数组中第 K 个独一无二的字符串 Java 题解
题目描述
独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串。
给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字符串 。如果 少于 k 个独一无二的字符串,那么返回 空字符串 "" 。
注意,按照字符串在原数组中的 顺序 找到第 k 个独一无二字符串。
复制代码
思路分析
今天的算法题目是字符串处理题目。分析题目,需要找到字符串在原数组中的 顺序 找到第 k 个独一无二字符串。
我们首先需要找到独一无二字符串,也就是只出现一次的字符串,应用到记数问题,首先想到的是数组记数或者 hashmap 计数。这个题目的 key 是字符串,使用 hashmap 比较合适。
这个题目第二点是要求按照字符串的原顺序,我们使用 hashmap 的时候,单字符的顺序会重新排列,因此,我们再次遍历整个字符串,找到字符出现 1 次的字符串。实现代码如下,请参考。
通过代码
复制代码
总结
上述算法的时间复杂度是 O(n),空间复杂度是 O(n)
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/ff75c86631e5aac785b810a94】。文章转载请联系作者。
评论