【LeetCode】字母异位词分组 Java 题解
题目描述
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次。
复制代码
思路分析
今天的算法每日一题是求解字符串问题。根据题意可得,字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次。比如 eat 和 tea 是异位词,但是 book 和 bok 就不是异位词。由此可得,异位词的所含字符数量和个数都相同。
根据我们推导出的结论,我们使用 hashmap 存储记录异位词组。我们将每一个字符串 s 排序作为 key,相同的 key 存储为异位词组。
通过代码
复制代码
总结
上述代码的时间复杂度是 O(n),空间复杂度是 O(n)
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/c1afbd5df46807fcba2af993e】。文章转载请联系作者。
评论