美文网首页
LeetCode 49. Group Anagrams

LeetCode 49. Group Anagrams

作者: phantom34 | 来源:发表于2019-05-10 15:42 被阅读0次

题目内容

49. Group Anagrams

Given an array of strings, group anagrams together.

样例输入输出

Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]

题解

题目内容很好理解,就是把有相同字母的但是顺序不一样的(即当你把它字母重排序后 两个单词是一模一样) 单词分在一个组 按照这个理解代码就很好实现了

代码

fun groupAnagrams(strs: Array<String>): List<List<String>> {
    var result: MutableList<MutableList<String>> = mutableListOf(mutableListOf())
    result.clear()
    strs.sortByDescending { String(it.toCharArray().sortedArray()) }
    var ss = "-1"
    var i = 0
    strs.forEach {
        if (ss == String(it.toCharArray().sortedArray())) {
            result[i].add(it)
        } else {
            ss = String(it.toCharArray().sortedArray())
            if (result.size != 0)
                i++
            result.add(mutableListOf(it))
        }
    }
//    println("111")
//    result.forEach { result2.add(it) }
//    result.forEach {
//        println(it.toString())
//    }
    return result
}

结果

image.png

相关文章

网友评论

      本文标题:LeetCode 49. Group Anagrams

      本文链接:https://www.haomeiwen.com/subject/payaoqtx.html