[[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
here is the output when i run it:
ReplyDeleteString to check for character frequency is : laaamburtiiifikasssssyon
l
a,3
m
b
u
r
t
i,3
f
i
k
a
s,5
y
o
n
String to check for character frequency is : aaassssddddfgh
a,3
s,4
d,4
f
g
h
String to check for character frequency is : abcdeee
a
b
c
d
e,3
String to check for character frequency is : a
a
String to check for character frequency is : ab
a
b
String to check for character frequency is : abBgGvV122
a
b
B
g
G
v
V
1
2,2
String to check for character frequency is : asdadddssf
a
s
d
a
d,3
s,2
f
Empty or null sequence!
Empty or null sequence!