4
代码说明格式化程序
从本质上讲,成功提交高尔夫球规则的代码到处都是疯狂的符号。为了使提交的内容易于理解,许多代码高尔夫球手选择对代码进行解释。在他们的解释中,代码行变成了垂直分解图。 例如,如果这是我的代码: 1_'[3:~2@+]` 我可以创建的许多可能的图之一如下所示: 1 _' [ ] [3: ] [ ~ ] [ 2@ ] [ +] ` 目标 在此挑战中,您将编写一个说明自动格式化工具,该工具采用一行代码并创建一个可轻松添加说明文字的图表。 为了使此挑战更为有用,用户将能够通过提供格式字符串来指定每行的内容。格式化字符串将是第二行,仅包含字母A-Za-z,与程序长度相同。字母表示在解释中应打印程序字符的顺序。 这是一个没有任何类似于括号的格式的I / O示例: 123423 AabcBC 1 2 3 2 3 4 括号 如果程序中有多个字符具有相同的优先级,则该字符集将充当单个代码块(如果它们构成一个组)或一组括号(如果它们之间包含其他字符)。一般规则很简单: 直到更高优先级的所有其他字符都已经出现在图表上方的行上,字符才会出现在图表的一行中。 优先级相同的字符始终打印在同一行上。如果某个字符出现在一行上,则所有其他优先级相同的字符都出现在该行上。 一组具有相同优先级的字符将继续出现在每一行上,直到其所包围的所有其他字符都至少出现过一次为止。这允许“类似托架”的构造。如果bceab是优先级,则b字符将出现在第二行(它们是第二高的优先级),并将继续出现,直到所有cea字符都出现为止。如果优先级字符串为abcadeafga,则所有优先级字符串bcdefg都视为包含在其中,则所有4 as将继续出现,直到出现为止g。 更多格式要求 输出的所有行应具有相同的长度(输入行的长度),并在必要时用空格填充。输入程序行可能包含空格,尽管这些空格也将被赋予优先级字母。输出/输入上的尾随换行符是可选的。 计分 这是代码高尔夫,最少的字节数获胜。 例子 这是一段带有复杂格式的代码的注释示例。 1_'[3:~2@+]` abbcddeffgch 1 #highest priority …