给定以简写递增整数序列格式输入的数字列表,请完整输出该序列。
速记递增整数序列格式的工作原理是找到每个数字n ,其位数比前面的数字m少。以d为n中的位数,将m的最后d位替换为n的所有数字 。这是一个示例输入:
123 45 6 7 89 200
应用替换规则,我们首先将45变成145,因为45 <123:
123 145 6 7 89 200
重复应用相同的规则,将变为:
123 145 146 7 89 200
123 145 146 147 89 200
123 145 146 147 189 200
现在对序列进行了排序(没有适用规则的数字),因此这是最终输出。
您可能会认为
尽可能使用速记符号。例如,输入将为
12 3,永不12 13。数字永远不会减少,而保持相同的数字位数。例如,输入永远不会是
333 222。应用简写规则将永远不会导致该数字仍然小于序列中的前一个数字。例如,输入永远不会是
123 12。数字将始终为正整数,并且永远不包含前导0(如果使用字符串格式)。
完整的扩展序列将永远不会包含重复的数字。(但是,速记顺序可能;例如
10 1 20 1->10 11 20 21。)输入中至少有一个数字。
输入和输出可以是数字/字符串的列表/数组,也可以是单个字符串,其元素之间用任何非数字分隔。
由于这是code-golf,因此以字节为单位的最短代码将获胜。
测试用例,输入和输出交替出现:
1 2 3 10 1 2 20 5 100 200 10 3 5 26 9 99 999 9999
1 2 3 10 11 12 20 25 100 200 210 213 215 226 229 299 999 9999
223 1184 334 441 5 927 2073 589 3022 82 390 5 9
223 1184 1334 1441 1445 1927 2073 2589 3022 3082 3390 3395 3399
5 10 5 20 5 30 5 40 5 50 5
5 10 15 20 25 30 35 40 45 50 55
7 8 9 70 80 90 700 800 900 7000 8000 9000
7 8 9 70 80 90 700 800 900 7000 8000 9000
42
42
挑战是相当古老的,但是a)输入可以为空吗?b)输入内容只能包含一个数字吗?
—
暴民埃里克(Erik the Outgolfer)
@EriktheOutgolfer我继续说,输入中将有≥1个数字。
—
Doorknob