LeetCode之Custom Sort String(Kotlin)

209 阅读1分钟

问题:


方法: 通过LinkedHashMap存储字符出现次数,keys的顺序作为S中字符的顺序。遍历T中字符,统计所有字符的次数,最后按keys的顺序和字符次数输出最终结果即可。

具体实现:

class CustomSortString {
    fun customSortString(S: String, T: String): String {
        val map = mutableMapOf<Char, Int>()
        for (el in S) {
            map[el] = 0
        }
        for (el in T) {
            var num = map[el]
            if (num == null || num == 0) {
                num = 1
            } else {
                num++
            }
            map[el] = num
        }
        val result = StringBuilder()
        for (el in map.keys) {
            val num = map[el]
            if (num == null) {
                continue
            } else {
                for (i in 1..num) {
                    result.append(el)
                }
            }
        }
        return result.toString()
    }
}

fun main(args: Array<String>) {
    val S = "cba"
    val T = "abcd"
    val customSortString = CustomSortString()
    val result = customSortString.customSortString(S, T)
    println(result)
}

有问题随时沟通

具体代码实现可以参考Github