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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |