这是一种解决LeetCode问题#9回文数的方法。我在考虑解决方案的时间复杂性。我试着用例子来理解时间复杂度。
比方说,对于一个3位数的数字,它会经过while循环两次。
对于一个6位数的数字,它会经历3次while循环。
我得出结论,这个数字增加了1000倍,而循环增加了1倍。
那么时间复杂度是什么呢?
有人能给我解释一下吗?非常感谢。
def isPalindrome(self, x):
if x < 0 or (x > 0 and x % 10 == 0): return False
half = 0
while x > half:
half, x = half * 10 + x % 10, x / 10
return x in (half, half / 10)发布于 2020-04-29 03:09:02
如果x是元组中的两个值之一,则x in (half, half/10)返回True。它相当于
x == half or x == half/10https://stackoverflow.com/questions/61487971
复制相似问题