[算法]如何用ruby统计数组或哈希中不同元素的个数?

浏览:42日期:2022-10-22

问题描述

例如有如下数据:

a,b,c,a,c,d

得到不同数据的值:a,b,c,d得到各个元素出现的个数:a => 2,b => 1,c => 2,d => 1

※数据出现不固定,可能有e,f,g等。

查了ruby文档的array和hash,没想出怎么实现。

问题解答

回答1:

得到不同数据的值:

%w(a b c a c d).uniq

得到各个元素出现的个数:

count_hash = {}%w(a b c a c d).each do |item| key = item.to_sym if count = count_hash[key] count_hash[key] = count + 1 else count_hash[key] = 1 endend回答2:

str=’a,b,c,a,c,d’counter = Hash.new(0)str.split(’,’).each { |val| counter[val]+=1 }puts counter

相关文章: