gpt4 book ai didi

ruby - 如何从字符串数组中生成可能的字母顺序组合?

转载 作者:数据小太阳 更新时间:2023-10-29 07:42:29 26 4
gpt4 key购买 nike

我有一个字符串数组:

["ABC", "GHI"]

广告我想要所有“字母”组合,从左到右阅读,即

["AG", "AH", "AI", "BG", "BH", "BI", "CG", "CH", "CI"]

但不是

"GA", "GB", "HA", etc.

同样,

["ABC", "DEF", "GHI"]

应该生成

["ADG", "ADH", "ADI", "AEG", "AEH", "AEI", "AFG", "AFH", "AFI", "BDG", "BDH", 
"BDI", "BEG", "BEH", "BEI", "BFG", "BFH", "BFI", "CDG", "CDH", "CDI", "CEG",
"CEH", "CEI", "CFG", "CFH" "CFI"]

但不是

"DAG", "GAD" or "GFA"

最佳答案

这是你需要的:

a = ["ABC","DEF", "GHI"]
a.map(&:chars).reduce(&:product).map(&:join)

顺便说一句,您在示例输出中犯了一些错误,根据您的规范,不应有以 E 或 F 开头的字符串。所以我想不是 "ECH", "ECI", "FCG", "FCH", "FCI" 你的意思是 "CEH", "CEI", "CFG", "CFH ", "CFI".

编辑:

chars 返回一个枚举器,而不是一个数组,在 2.0 之前的 Ruby 版本中,它们没有 product 方法。所以在那些版本中,只需像这样使用 to_a:

a.map(&:chars).map(&:to_a).reduce(&:product).map(&:join)

关于ruby - 如何从字符串数组中生成可能的字母顺序组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22429190/

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