加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 01:47:55 所属栏目:百科 来源:网络整理
导读:我有一个字符串数组: ["ABC","GHI"] ad我想要所有’字母’组合,从左到右读取,即 ["AG","AH","AI","BG","BH","BI","CG","CH","CI"] 但不是 "GA","GB","HA",etc. 同样的, ["ABC","DEF","GHI"] 应该生成 ["ADG","ADH","ADI","AEG","AEH","AEI","AFG","AFH","AF
我有一个字符串数组:

["ABC","GHI"]

ad我想要所有’字母’组合,从左到右读取,即

["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","GHI"]
a.map(&:chars).reduce(&:product).map(&:join)

顺便说一句,您在示例输出中出现了一些错误,根据您的规范,永远不应该有以E或F开头的字符串.所以我认为而不是“ECH”,“ECI”,“FCG”,“FCH”,“FCI”,而不是“CEH”,“CEI”,“CFG”,“CFH”,“CFI”.

编辑:

chars返回一个Enumerator,而不是一个数组,而在2.0之前的Ruby版本中,它们没有产品方法.所以在这些版本中,只需像这样使用to_a:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读