算法之异位词字符处理
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
复制代码
解法一:将 String 按照字符 ascii 顺序映射成统一序的 String,作为 Map 的 key 键,以此归类进行分组时间复杂度:O(N*K)K 为内部每个单独 String 循环的时间复杂度
空间复杂度:为 O(1)
复制代码
解法二:对 String 的字符数组进行排序,或者统一序的 String 作为 Map 的 key 键,以此归类进行分组时间复杂度:O(N*KlogK)空间复杂度为 O(K)
复制代码
两种解法思路基本一致,不过在于对原始字符的识别处理上不一样。第一种对于任意长度的数据,只需要一次遍历 O(n)即可实现,其优点在于对于长字符支持较好。
版权声明: 本文为 InfoQ 作者【Skysper】的原创文章。
原文链接:【http://xie.infoq.cn/article/40637906011dfc6f3dac7f81b】。文章转载请联系作者。
评论