#LeetCode:451. Sort Characters By Frequency

灆洢 2020-05-22 17:44:13

此題要將給予的字串,依照其各個文字的出現頻率去對這些字母進行由多到少的排序。

將給予的字串先分群紀錄每個字的出現的頻率多寡,並由多到少排序,排完以後再根據每個文字的數量重新組合成新的字串即可。

Kotlin(268ms)

/*******************************************************
 * LeetCode 451. Sort Characters By Frequency          *
 * Author: Maplewing [at] knightzone.studio            *
 * Version: 2020/05/22                                 *
 *******************************************************/
class Solution {
    fun frequencySort(s: String): String =
        s.groupingBy({ it }).eachCount().toList()
            .sortedByDescending({ it.second })
            .joinToString("") { 
                it.first.toString().repeat(it.second) 
            }
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料