【发布时间】:2015-06-08 08:21:27
【问题描述】:
我有一个多维数组:
[
[:C],
[:C, [:C]],
[:C, [[:C]]],
[:C, [:C, [:C]]],
[:C, [:C, [:C, :C]]],
[:C, [:C, [:C, [:C]]]],
[:C, [:C, [:C, [:C, :C]]]],
]
我需要把它翻译成这样的字符串:
"C C(C) C((C)) C(C(C)) C(C(CC)) C(C(CC)) C(C(C(C)))"
为了清楚起见,这里是内部数组,每个都显示有翻译后的字符串:
[:C] => "C"
[:C, [:C]] => "C(C)"
[:C, [[:C]]] => "C((C))"
[:C, [:C, [:C]]] => "C(C(C))"
[:C, [:C, [:C, :C]]] => "C(C(CC))"
[:C, [:C, [:C, [:C]]]] => "C(C(CC))"
[:C, [:C, [:C, [:C, :C]]]] => "C(C(C(C)))"
我尝试过使用 flatten 和 concatenate,但我没有得到
期望的结果。我想要带括号的,这样可以很容易
确定。如果我使用flatten 或concat,我会得到CCCCCCCCCCCCC。一世
想要用括号括起来。
【问题讨论】:
-
你能解释一下你的需求逻辑吗?为什么有些 C 在输出中应该有括号并不明显。一些更简单的例子会有所帮助。
-
chemical=Array.new(l,[:C])该化学物质是 N-d 阵列。它附有一些分支。您在第二个 C 中看到数组中有一个数组。所以我想用括号来区分它。 @MaxWilliams -
那里有三层嵌套,所以说“数组中有一个数组”并没有多大帮助。您能否为您的输入问题添加一些简单的示例,这些示例不会产生括号内的输出,然后是它的更改版本?假设没有人对你的化学作业或任何内容一无所知。
-
如果没有带有数组的数组,那么我可以简单地展平或连接。例如:
[[:C, [":Br"]], [:C, [":Br"]], [:C, [":Br"]]],输出应该是 CBrCBrCBr。但主要问题是带有数组的数组。 @MaxWilliams -
嗯,整个就是一个数组,里面有3个数组,然后他们里面都有另外一个数组。所以,这里有三层嵌套数组。所以数组中有很多数组,但你说它们不应该有括号。请在您的问题中非常清楚地指定您的要求规则,因为只是说“数组中的数组”没有帮助。
标签: ruby-on-rails arrays ruby string random