原题链接:#9 Palindrome Number
要求:
判断一个整数是否是回文数,不要使用额外的存储空间
难度:简单
分析:
题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。
注:没有看到有关负数是否可以是回文数的明确结论,例如-1,-121等。根据LeetCode Judging结果暂认为所有负数都不是回文数
解决方案:
Java - 388ms
public boolean isPalindrome(int x) { if(x < 0){ return false; } int originNum = x; int num = x % 10; x = x / 10; while(x != 0){ num *= 10; num += x%10; x /= 10; } return num==originNum; }
Python - 269ms
def isPalindrome(self, x): if (x < 0): return False originNum = x num = x % 10 x /= 10; while (x!=0): num *= 10 num += x%10 x /= 10 return num==originNum
相关推荐
js js_leetcode题解之9-palindrome-number.js
c语言入门 C语言_leetcode题解之09-palindrome-number.c
c c语言_leetcode 0009_palindrome_number.zip
然后通过用循环来解:假设第一个for循环是一个数组的循环,而后它的内嵌循环是也是这个数组,只是下标从0变成了1,这样,在第一次循环时,第1个元素会与其他所有元素
java入门 java_leetcode题解之009_Palindrome_Number
面试题 02.06. 回文链表标签:栈、递归、链表、双指针难度:简单题目大意给定一个链表的头节点 head。然后再使用两个指针,一个指向数组开始位置,一个指向数
解题思路如果 n ,则 n 必然不是丑数,直接返回 False。对 n 分别进行 2、3、5 的整除操作,直到 n 被除完,如果 n 最终为 1,则 n
0148. 排序链表标签:链表、双指针、分治、排序、归并排序难度:中等题目大意给定链表的头节点 head。将排序后的子链表进行归并排序,得到完整的排序后的链表。
解题思路先来看一下规律:第 1 阶台阶:1 种方法(从 0 阶爬 1 阶)第 2 阶台阶:2 种方法(从 0 阶爬 2 阶,从 1 阶爬 1 阶)第 i 阶台阶
0169. 多数元素标签:数组、哈希表难度:简单题目大意给定一个数组,找到其中相同元素个数最多的元素。遍历一遍数组 nums,用哈希表统计每个元素 num 出现
0038. 外观数列标签:字符串难度:简单题目大意给定一个正整数 n,$(1 \le n \le 30)$,要求输出外观数列的第 n 项。将 ans 设为 "1
要求:对于 0 ≤ i ≤ n 的每一个 i,计算其二进制表示中 1 的个数,返回一个长度为 n + 1 的数组 ans 作为答案。解题思路可以根据整数的二进制
0946. 验证栈序列标签:栈、数组、模拟难度:中等题目大意给定两个整数序列 pushed 和 popped,每个序列中的值都不重复。要求:如果第一个序列为空栈
0704. 二分查找标签:二分查找难度:简单题目大意给定一个升序的数组 nums,和一个目标值 target,返回 target 在数组中的位置,如果找不到,则
如果 s 中的字符可以按某种映射关系替换得到 t 相同位置上的字符,那么两个字符串是同构的。不同字符不能映射到统一字符上,相同字符只能映射到同一个字符上,字符可
如果顾客支付 10 美元,如果我们手头有 5 美元面额的钞票,则找给顾客,否则无法正确找零,返回 False。如果顾客支付 20 美元,如果我们手头有 1 张
旋转操作指的是:升序排列的数组 nums 在预先未知的第 k 个位置进行了右移操作,变成了 [nums[k]], nums[k+1], ... , nums[n
javascript js_leetcode题解之131-palindrome-partitioning.js
javascript js_leetcode题解之132-palindrome-partitioning-ii.js
解题思路最大元素满足大于等于L 小于等于R的子数组个数 = 最大元素小于等于 R 的子数组个数 - 最大元素小于 L 的子数组个数。我们使用 count 记录