gpt4 book ai didi

ruby - Ruby中压缩给定字符串问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:32 25 4
gpt4 key购买 nike

一段时间以来,我一直在尝试解决这个问题,我应该将给定的字符串(如“aaabbc”)压缩成一个新字符串,该字符串在一行中表示多个字母。所以它会输出“3a2bc”

到目前为止,我设法将它打印出来,除了它计算了一个字母的所有实例,我不确定如何摆脱当前的重复:

def compress_str(str)

new_str = []
word = str.split("")

word.each do |char|
count = 0
word.each do |ele|
if ele == char
count += 1
end
end
if count > 1
new_str << count
new_str << char
else
new_str << char
end
end

return new_str.join("")

示例输出:

Sample

关于我应该如何摆脱它们的任何建议?

最佳答案

使用 Enumerable#chunk 可能很适合您的需求。

uncompressed = %w(aaabbcddaaaaa aaabb 111ddttttabaaacc)

uncompressed.each do |str|
puts str.chars.chunk{|e| e}.map {|e| "#{e[1].length}#{e[0]}"}.join
end

>>> 3a2b1c2d5a
>>> 3a2b
>>> 312d4t1a1b3a2c

当然,您可以在 map block 中添加另一个检查,因此在单个元素之前省略 1 并按原样打印。

关于ruby - Ruby中压缩给定字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58192680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com