gpt4 book ai didi

python - 检查数字是否为回文而不将其更改为字符串

转载 作者:行者123 更新时间:2023-11-28 22:18:14 26 4
gpt4 key购买 nike

如果数字 n 是回文,我在解决这个问题时遇到了问题,它只是返回 True of False。

注意:凡是我有一个____的地方都表示哪里有空格需要填写,这里有2个空格。

def is_palindrome(n):
x, y = n, 0
f = lambda: ____
while x > 0:
x, y = ____ , f()
return y == n

我在这上面花了大约一个小时。我发现将 x//10 放在第二个空格中将允许函数迭代 n 中的位数。然后归结为函数 f

理想情况下,每次调用它时,它都应该将 n 中的最后一位数字添加到一个新数字 y 中。因此,如果n = 235,while循环将迭代3次,每次调用f()时,都应该加上532 到值 y

最佳答案

逻辑如下:(y * 10) + x % 10

def is_palindrome(n):
x, y = n, 0
f = lambda: (y * 10) + x % 10
while x > 0:
x, y = x//10 , f()
return y == n

print(is_palindrome(123454321))
# True
print(is_palindrome(12))
# False

y*10 将当前 y 向左移动一位,x%10 添加最后一位。

print(is_palindrome(235))
# False

迭代前:x = 235, y = 0

第一次迭代:x = 23y = 5

第二次迭代:x = 2y = 53

第三次迭代:x = 0y = 532

关于python - 检查数字是否为回文而不将其更改为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50660606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com