这是我的代码在红宝石的字压缩。 对于任何给定的单词(例如abbbcca),压缩的单词/输出应采用格式“letter + repeat”(例如,输出:a1b3c2a1)。弦乐压缩器(红宝石)
在这里,我很接近完成,但我的结果不在预期格式。它正在计算整个string.chars.each
中的字母,因此得到的结果为a2b3c2a2
。
任何帮助?
def string_compressor(string)
new_string = []
puts string.squeeze
string.squeeze.chars.each { |s|
count = 0
string.chars.each { |w|
if [s] == [w]
count += 1
end
}
new_string << "#{s}#{count}"
puts "#{new_string}"
}
if new_string.length > string.length
return string
elsif new_string.length < string.length
return new_string
else "Equal"
end
end
string_compressor("abbbcca")
[连续字母频率]的可能重复(http://stackoverflow.com/questions/27713412/consecutive-letter-frequency) – akuhn