【发布时间】:2021-04-20 20:49:11
【问题描述】:
编辑:有人指出,该步骤不能以我希望的方式更改,解释我想要做的更清晰的方法是找到跳过重复数字的数字的方法。
我想使用step、step 来遍历数字的每个可能的唯一组合:range(start_value, end_value, step)。
我想要的本质上是for i in range(start_value, end_value, step) 中的i 始终是一个数字,其中该数字中的所有字符都是唯一的。
下面的代码也显示了我想要的类似内容。它只会打印没有重复的数字。
def printUnique(l,r):
for i in range (l, r + 1):
num = i
visited = [0,0,0,0,0,0,0,0,0,0]
while (num):
if visited[num % 10] == 1:
break
visited[num % 10] = 1
num = (int)(num / 10)
if num == 0:
print(i, end = ' ')
l = 123456789;
r = 9876543210;
printUnique(l, r);
但是,上面的代码不是我想要的。它不使用step,而是以默认步长1 遍历所有数字。
我正在寻找的代码示例格式:
start_value = 123456789
# this is basically 0123456789 but putting zero at the beginning raises an error
end_value = 9876543210
step = 1
# step will probably be a changing variable outside of the loop, maybe not depending on how you do it
# any other potential variables that need to be stored
for i in range(start_value, end_value, step):
print(i)
# algorithm here that modifies step variable
如果 start_value 是 98 并且 end_value 是 0 (01),如果变量存储在列表中并且未打印,则输出应如下所示。跳过数字 11、22、33、44、55、66、77、88 和 99。
savedList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98]
【问题讨论】:
-
明确您的问题。您是否要跳过重复数字的数字?
-
是的,这就是我想要做的。我会把它添加进去。
-
那你为什么不直接给
printUnique()添加一个step参数,然后传递给range()呢?
标签: python algorithm range unique