[kotlin]スープ


fun solution(s: String): IntArray {
        var hashMap = hashMapOf<Long, Int>()
        var options = arrayListOf<Int>()
        s.substring(1, s.length-1)
            .split(',')
            .toList()
            .forEach {
                var tmp = it
                if ("{" in tmp) {
                    tmp = tmp.substring(1, tmp.length)
                }
                if ("}" in tmp) {
                    tmp = tmp.substring(0, tmp.length-1)
                }
                options.add(tmp.toInt())
            }
        for (option in options) {
            hashMap.put(option.toLong(), hashMap.getOrDefault(option.toLong(), 0)+1)
        }
        var sortedMap = hashMap.toList().sortedWith(compareBy({it.second})).toMap().keys.reversed()
        return  sortedMap.map { it.toString().toInt() }.toIntArray()

    }
  • ゲームをやりたかったのですが、splitではregexを"},{,短すぎるエラーが発生しました.そのためforEachゲートでもう一度フィルタリングして、この部分は少し長くなりました.これはstring"},{"で分割できます.
  • splitの後、Unitの形式が現れ、ASSequenceを設定する必要があります.
  • hashmapで鍵とValueを設定し、Valueでソートして逆にします.