LeetCode-回文数
原题链接:9. 回文数 - 力扣(LeetCode)
首先我会想到的是,将这个数字转成字符串,然后通过前后指针判断是否相等,最终返回结果是否为回文数,时间复杂度:O(n),空间复杂度:O(n)。
当然由于他是数字我们还可以用另一种方法,每次取出x的尾数,并以这个尾数作为开始,从左向右拼接一个数,直到这两个数完全相等。当然这是建立在这个数字的位数是偶数位置,如果是奇数位置则撇去中间位置即可,时间复杂度:O(log n),空间复杂度:O(1)。可能比较抽象举个例子:
假设x = 1221,声明一个临时变量y = 0;
第一轮: y = 1, x = 122;
第二轮: y = 12, x = 12;【此时x不再大于y】
判断:x == y 则是;
第二种情况:
假设x = 12321,声明一个临时变量y = 0;
第一轮: y = 1, x = 1232;
第二轮: y = 12, x = 123;
第三轮: y = 123, x = 12;【此时x不再大于y】
判断:x == y/10 则是;