根据长度递归分组字符串

时间:2012-07-11 02:51:57

标签: ruby string recursion concatenation

我有

strings = ["aaa", "bb", "ccc", "ddd", "e", "ff", "rrrrrrrr", "tttttttt", "a"]

我想对数组中的字符串进行分组,以便每个元素不再是5,而不是短于9.字符串必须在数组中保持它们的顺序。

编辑:很抱歉混淆,是的 - 至少5,最多9。

我正在寻找的结果是:

 result  = ["aaabbbccc", "dddeff", "rrrrrrrr", "tttttttta"]

1 个答案:

答案 0 :(得分:1)

由于您的问题以相当混乱的方式指定,这是我能想到的最好的问题。

strings.inject(['']) { |a, s| a.last.size + s.size <= 9 ? a.last << s : a << s ; a }
#=> ["aaabbccc", "dddeff", "rrrrrrrr", "tttttttta"]