[[a,3],[s,4],[d,4],f,g,h]
class CharacterFrequency def char_frequency(sequence) return_array = Array.new if (!sequence.eql?(nil) && sequence.size>0) puts "String to check for character frequency is : "+sequence last_checked_char_index = 0 for i in 0...sequence.size next_char_index = last_checked_char_index + 1 repeating_char_count = 1 if(i >= last_checked_char_index) for j in i...sequence.size if(sequence[j].eql?(sequence[next_char_index])) repeating_char_count = repeating_char_count + 1 next_char_index = next_char_index + 1 last_checked_char_index = next_char_index else last_checked_char_index = next_char_index arr = Array.new if repeating_char_count > 1 arr = sequence[i].chr.to_s+","+repeating_char_count.to_s elsif repeating_char_count == 1 arr = sequence[i].chr.to_s end return_array.push(arr) break end end end end if(!return_array.empty? && return_array.length >0) for indice in 0...return_array.size puts return_array[indice] end end else puts "Empty or null sequence!" end end end app = CharacterFrequency.new app.char_frequency("laaamburtiiifikasssssyon") app.char_frequency("aaassssddddfgh") app.char_frequency("abcdeee") app.char_frequency("a") app.char_frequency("ab") app.char_frequency("abBgGvV122") app.char_frequency("asdadddssf") app.char_frequency("") app.char_frequency(nil)
Save your script into frequency.rb file and run as follows. It will loop through the created array and display elements at console. Tested with ruby 1.8.7 on ubuntu9.04.
$ ruby frequency.rb