paolongtao8 2009-08-04 07:35
浏览 216
已采纳

按子字符串出现的次数,排序字符串中子字符串

解释:
“字符串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"

  • 写回答

2条回答 默认 最新

  • winteen 2009-08-04 19:34
    关注

    while n < a.size do
    ?> h[n] = a[n]

    n=n+1
    end
    ...
    a = ["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
    b = h.sort{|a, b|a[1]<=>b[1]}.collect{|tmp|tmp[0]}.join()
    p b

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大