我有这样的功能
def string_compressor(string)
end
它接收一串重复的单词并返回压缩的字符串。例如:如果我通过aaabbbccaa
它应该返回a3b3c2a2
. 我已经尝试了很多来解决这个问题。有人能帮我解决这个问题吗?
您可以将gsub与捕获组和块一起使用:
p 'aaabbbccaaz'.gsub(/(.)\1+/) { |x| "#{Regexp.last_match(1)}#{x.size}" }
# => "a3b3c2a2z"
或块:
p 'aaabbbccaaz'.chars.chunk{|x| x}.map{|x, xx| xx.size > 1 ? "#{x}#{xx.size}" : x}.join
# => "a3b3c2a2z"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句