给定整数1 <= n <= 100000。我如何有效地获得所有整数,这些整数是整数n的子序列(将整数n视为数字字符串)。我想要一个伪代码。
例如。输入: n=121
,输出:( 1,12,11,2,21
输出顺序不重要)
例如。输入: n=132
,输出: 1,13,12,3,32,2
提前致谢
这是使用递归的另一个版本。这个仅使用整数除法和取模(都在中divmod
进行组合)来获得“子整数”。它是用Python完成的,与伪代码一样好...
def subints(n):
d, r = divmod(n, 10)
if d > 0:
for s in subints(d):
yield 10*s + r
yield s
yield r
示例:(其中一个set
所得的数字就足够了;list
用于更好地理解)
>>> print list(subints(1234))
[1234, 123, 124, 12, 134, 13, 14, 1, 234, 23, 24, 2, 34, 3, 4]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句