解释:
“字符串1,字符串2,字符串1,字符串3,字符串4,......,字符串n,字符1,字符串13,.......,字符串x”
所有的字符串均不包含‘,’。
想根据这些字符串出现的次数,从多到少排列这些字符串,多谢指点,谢谢!
[b]问题补充:[/b]
a=["a", "b", "c", "a", "b", "d", "c", "a", "c", "b", "d", "e", "c", "b"]
=> ["a", "b", "c", "a", "b", "d", "c", "a", "c", "b", "d", "e", "c", "b"]
h={}
=> {}
n=0
=> 0
while n < a.size do
?> h[n] = a[n]
n=n+1
end
=> nil
h
=> {5=>"d", 11=>"e", 0=>"a", 6=>"c", 12=>"c", 1=>"b", 7=>"a", 13=>"b", 2=>"c", 8=>"c", 3=>"a", 9=>"b", 4=>"b", 10=>"d"}
h.size
=> 14
a.size
=> 14
a=a.join(',')
=> "a,b,c,a,b,d,c,a,c,b,d,e,c,b"
a.count('a')
=> 3
a.count('b')
=> 4
a.count('c')
=> 4
a.count('d')
=> 2
a.count('e')
=> 1
b=h.sort{|a,b| a[1]<=>b[1]}
=> [[3, "a"], [7, "a"], [0, "a"], [1, "b"], [13, "b"], [4, "b"], [9, "b"], [6, "c"], [2, "c"], [8, "c"], [12, "c"], [5, "d"], [10, "d"], [11, "e"]]
print b
3a7a0a1b13b4b9b6c2c8c12c5d10d11e=> nil
[b]问题补充:[/b]
=> ["a", "b", "c", "a", "b", "d", "c", "a", "c", "b", "d", "e", "c", "b"]
h = {}
=> {}
a.each do |str|
?> h[str] = (h[str] || 0) + 1
end
=> ["a", "b", "c", "a", "b", "d", "c", "a", "c", "b", "d", "e", "c", "b"]
b = h.sort{|a, b| b[1]<=>a[1]}.collect{|tmp| tmp[0]}.join()
=> "cbade"