基于 这个问题。
给定一个字符串,将每个括号替换()[]{}<>
为适当类型的括号,以使括号匹配,并且嵌套括号循环如下:
- 最外面的是
()
- 直接的内
()
应[]
- 直接的内
[]
应{}
- 直接的内
{}
应<>
- 直接在内
<>
将()
再次出现(周期)
所有非括号字符必须保持原样。开括号只能用某种类型的开括号替换,而闭括号则要用闭括号替换。
输入将始终使之成为可能。这意味着如果忽略其类型,则其括号正确匹配。所以,{ab<)c]
是一个有效的输入,但ab)(cd
还是ab((cd
没有。
例子:
2#jd {¤>. = 2#jd (¤).
abcdef = abcdef
(3×5+(4-1)) = (3×5+[4-1])
<<<>><<>><<<<<<>>>>>>> = ([{}][{}][{<([{}])>}])
不允许使用这种方式对输入进行本机转换(语言的自动语法)。
与往常一样:最短的代码获胜。
我不明白挑战。就输入而言,输出必须是什么?
—
xnor
@xnor除了四种括号外,输出应与输入相同。需要替换它们以匹配模式。
—
Dirk Reichel
啊,现在我明白了。我不明白“应该是”是您应该做的真实的事情。我将进行编辑以使其更加清晰。
—
xnor
@DirkReichel我认为这不是您需要担心的事情。我无法想象任何一种语言都可以在本地进行这种特定的转换,并且在极少数的情况下,如果有这样一种语言,那么这意味着用该语言回答并不是一件很有趣的事情。
—
马丁·恩德
@DirkReichel有什么意义?只需坚持使用ASCII。除了对纯ASCII语言的不必要限制外,使用不同的字符不会给挑战带来任何好处。
—
FlipTack