我将尝试编写一个方法,它将以'abcd'作为输入,并返回:
["a b c d", "a b cd", "a bc d", "a bcd", "ab c d", "ab cd", "abc d", "abcd"]
所以,将字符串分成n个子字符串的所有可能方式,使得当你连接s1 + s2 + s3 + ...时,你会得到原始字符串。
我已经这样解决了它,但我觉得应该有一种更快更直接的方法来做到这一点。
def sequence(n)
[true, false].repeated_permutation(n).to_a
end
def breakdown4(string)
guide = sequence(string.length-1)
arr = []
guide.each do |i|
s = string.dup
counter = 0
i.each do |j|
if j
s.insert(counter+1, " ")
p counter
counter += 2
else
counter += 1
end
end
arr.push(s)
end
arr
end
有什么建议吗?