Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “回文数”解的时间复杂度_Python - Fatal编程技术网

Python “回文数”解的时间复杂度

Python “回文数”解的时间复杂度,python,Python,这是一个解决LeetCode问题9回文数的解决方案。 我在考虑解决方案的时间复杂性。我试图通过例子来理解时间复杂性 例如,对于一个3位数的数字,它会通过while循环两次 对于一个6位数的数字,它经过while循环3次 我得出结论,这个数字增加了1000倍,而loop增加了1倍 那么时间复杂度是多少 谁能给我解释一下吗?非常感谢你 def isPalindrome(self, x): if x < 0 or (x > 0 and x % 10 == 0): return Fa

这是一个解决LeetCode问题9回文数的解决方案。 我在考虑解决方案的时间复杂性。我试图通过例子来理解时间复杂性

例如,对于一个3位数的数字,它会通过while循环两次

对于一个6位数的数字,它经过while循环3次

我得出结论,这个数字增加了1000倍,而loop增加了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)
如果x是元组中的两个值之一,则x/half/10返回True。相当于

x == half or x == half/10

..., ..., ... 通常形成元组或生成器。对于元组或列表等,可以很好地使用in运算符。。这就是这里发生的情况:您正在检查x是否在某个值,某个值/10中。括号不构成元组:逗号构成元组。括号仅用于防止根据上下文对逗号进行不同处理。例如,f3,5个调用f,其中有2个参数,3个和5个。f3,5用一个元组参数调用f。@切普纳:你说得对,我不够精确。在这种情况下,返回x的一半,half/10将尝试返回一个元组,该元组由x的一半结果和值的一半/10组成。您应该避免从根本上改变问题的性质,因为它会使以原始形式提供的注释和答案无效。你的问题开始于对半变量的理解,现在变成了一个复杂的问题