gpt4 book ai didi

arrays - 如何在不改变顺序的情况下在 Ruby 中获取字符串的排列?

转载 作者:行者123 更新时间:2023-12-05 01:04:14 25 4
gpt4 key购买 nike

我正在尝试获取一个字符串,并在不改变顺序的情况下返回所有可能的排列。例如:

string_array = ["abc"]
empty_array = []
string_array.each do |element|
for i in (0..(element.length-1)) do
empty_array.push(element[0..i])
i += 1
end
end

这样的东西会给 ['a', 'ab', 'abc'].

但是,我需要 ['a', 'ab', 'abc', 'b', 'bc', 'c'].

是否可以修改我的代码以包含此内容?

最佳答案

您可以使用 repeated_combination生成每个子字符串的第一个和最后一个索引:

[0, 1, 2].repeated_combination(2).to_a
#=> [[0, 0], [0, 1], [0, 2], [1, 1], [1, 2], [2, 2]]

要实际提取子字符串:

str = 'abc'
(0...str.size).to_a.repeated_combination(2).map { |i, j| str[i..j] }
#=> ["a", "ab", "abc", "b", "bc", "c"]

关于arrays - 如何在不改变顺序的情况下在 Ruby 中获取字符串的排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72494404/

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