我有一个数字,我想按如下所示拆分。我想保留数字的出现顺序,但是由此产生的列表必须保持数字的原始顺序。
我拥有的电话号码是3147,可以如下所示进行拆分。 3147可以分为31、47或3,1,47等。但是原始数字的顺序不会丢失。
那么我该如何实现呢?
最好是用Python得到答案,但也可以使用其他任何语言。
Input
3147
Output
[3,1,4,7]
[3,147]
[3,1,47]
[31,4,7]
[31,47]
etc
您可以改用我的答案here:
代码:
def splitter(n):
s = str(n)
for i in range(1, len(s)):
start = s[0:i]
end = s[i:]
yield [int(start), int(end)]
for split in splitter(end):
result = [start]
result.extend(split)
yield list(int(x) for x in result)
用法:
for x in splitter(3147):
print(x)
输出:
[3, 147]
[3, 1, 47]
[3, 1, 4, 7]
[3, 14, 7]
[31, 47]
[31, 4, 7]
[314, 7]