每个人都喜欢嵌套列表!但是,有时很难创建嵌套列表。您必须决定是否要将其嵌套得更深,或者是否需要将其嵌套得更浅。因此,对于您的挑战,您必须“自动”列表。要自动列出列表,请比较列表中的每对项目。
如果第二个元素较小,则通过在两个元素之间插入闭合和打开括号来分隔这两个元素,如下所示:
} { {2 , 1}
例如,
{2, 1}
变为{2}, {1}
,并且{3, 2, 1}
变为{3}, {2}, {1}
如果第二项相同,则保持不变。例如,
{1, 1, 1}
保持不变,{2, 1, 1, 1}
将变为{2}, {1, 1, 1}
。如果第二个项目较大,则将每个后续项目嵌套更深一层。例如,
{1, 2}
将成为{1, {2}}
并且{1, 2, 3}
将成为{1, {2, {3}}}
挑战
您必须编写一个接受数字列表的程序或函数,并在自动嵌套后返回相同的列表。以您的语言本机列表格式(或最接近的替代格式)或字符串形式输入此输入。您不必像我在示例中那样使用花括号。您可以使用语言中最自然的括号类型,只要这是一致的即可。您可以放心地假设列表将仅包含整数。您也可以假设列表中至少包含2个数字。这是一些示例IO:
{1, 3, 2} --> {1, {3}, {2}}
{1, 2, 3, 4, 5, 6} --> {1, {2, {3, {4, {5, {6}}}}}}
{6, 5, 4, 3, 2, 1} --> {6}, {5}, {4}, {3}, {2}, {1}
{7, 3, 3, 2, 6, 4} --> {7}, {3, 3}, {2, {6}, {4}}
{7, 3, 1, -8, 4, 8, 2, -9, 2, 8} --> {7}, {3}, {1}, {-8, {4, {8}, {2}, {-9, {2, {8}}}}}
存在标准漏洞,最短的答案以字节为单位!
[-100, 100]
但是我不打算提供巨大的输入。
{2, 1}
变为:{2}, {1}
“如何将上一层高?比更高一级{2}, 1
。您所拥有的是同一水平。