How to find the frequency of each digit (0–9) in a number with Ruby

1 Answer

0 votes
# Counts how many times each digit (0–9) appears in a given number
def digit_frequency(number)
  # Convert number to string so we can iterate over each character
  digits = number.to_s

  # Initialize a hash with keys 0–9, all starting at 0
  frequency = Hash[(0..9).map { |d| [d, 0] }]

  # Go through each character, convert to integer, and increment its count
  digits.each_char do |char|
    digit = char.to_i
    frequency[digit] += 1
  end

  frequency
end

# Usage:
puts digit_frequency(120220340501)


=begin
run:

{0 => 4, 1 => 2, 2 => 3, 3 => 1, 4 => 1, 5 => 1, 6 => 0, 7 => 0, 8 => 0, 9 => 0}

=end

 



answered Jul 2 by avibootz

Related questions

...