1

在字符串中压缩多字符的最佳方法是什么?

Example:
hahahahahaha => ha
lalalala => la
awdawdawdawd => awd

str.squeeze("ha")  # doesn't work
str.tr("haha", "ha") # doesn't work 
4

2 回答 2

3

您可以使用基于正则表达式的搜索和替换:

str.gsub(/(ha)+/, 'ha')
于 2013-01-24T09:46:52.560 回答
3
def squeeze(s)
  s.gsub(/(.+?)\1+/, '\1')
end

puts squeeze('hahahaha')                  # => 'ha'
puts squeeze('awdawdawd')                 # => 'awd'
puts squeeze('hahahaha something else')   # => 'ha something else'
于 2013-01-24T10:07:25.733 回答