[[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