c*******r 发帖数: 309 | 1 e.g: input: "abcabcbcc"
output: "c 4, b 3, a 2"
按字母出现的频率从大到小打印出来
这题如果要sort frequency用什么比较好? Hashtable sort不方便, 直接用Int[]存
frequency也不太好sort吧。 | p*****2 发帖数: 21240 | 2
数组就可以了。
【在 c*******r 的大作中提到】 : e.g: input: "abcabcbcc" : output: "c 4, b 3, a 2" : 按字母出现的频率从大到小打印出来 : 这题如果要sort frequency用什么比较好? Hashtable sort不方便, 直接用Int[]存 : frequency也不太好sort吧。
| p*****2 发帖数: 21240 | 3 val str="abcabcbcc"
val arr=Array.tabulate(26)(i=>Array(i,0))
str.foreach{c=>arr(c-'a')(1)+=1}
val sorted=arr.sortBy(-_(1))
val ss=for(i<-0 until 26 if (sorted(i)(1)>0)) yield{
(sorted(i)(0)+'a').toChar+" "+sorted(i)(1)
}
println(ss.mkString(",")) |
|