[Leetcode] 9. Palindrome Number 解题报告
2016-12-10 23:33
706 查看
题目:
Determine whether an integer is a palindrome. Do this without extra space.
思路:
题目不难,但仍然有三点需要特别注意:
1)如果是负数怎么办?假定如果是负数就返回false。
2)如果你想首先把整数转化为字符串,然后比较字符串是否是回文,那么需要考虑到此时的空间复杂度会变为O(n),其中n是输入整数的位数。
3)如果你想直接对整数进行翻转,那么空间复杂度为O(1),但是必须要考虑到溢出的情况。
该算法的时间复杂度为O(n),其中n是输入整数x的位数。
代码:
Determine whether an integer is a palindrome. Do this without extra space.
思路:
题目不难,但仍然有三点需要特别注意:
1)如果是负数怎么办?假定如果是负数就返回false。
2)如果你想首先把整数转化为字符串,然后比较字符串是否是回文,那么需要考虑到此时的空间复杂度会变为O(n),其中n是输入整数的位数。
3)如果你想直接对整数进行翻转,那么空间复杂度为O(1),但是必须要考虑到溢出的情况。
该算法的时间复杂度为O(n),其中n是输入整数x的位数。
代码:
class Solution { public: bool isPalindrome(int x) { if (x < 0) return false; int y = 0, z = x; while (z > 0) { int last_num = z % 10; if (y > (INT_MAX - last_num) / 10) return false; y = 10 * y + last_num; z /= 10; } return x == y; } };
相关文章推荐
- [leetcode] 9. Palindrome Number 解题报告
- [Leetcode] 263. Ugly Number 解题报告
- [LeetCode] 452. Minimum Number of Arrows to Burst Balloons 解题报告
- 剑指offer 面试题34:寻找丑数(Leetcode 263.ugly number)解题报告
- leetcode 375. Guess Number Higher or Lower II 解题报告
- [Leetcode] 452. Minimum Number of Arrows to Burst Balloons 解题报告
- LeetCode解题报告 --- Single Number II
- Leetcode 452. Minimum Number of Arrows to Burst Balloons 射箭 解题报告
- 【LeetCode】260. Single Number III 解题报告(Python)
- [leetcode] 375. Guess Number Higher or Lower II 解题报告
- LeetCode解题报告--Letter Combinations of a Phone Number
- LeetCode解题报告—— Number of Islands & Bitwise AND of Numbers Range
- Ugly Number | leetcode 263 【Java解题报告】
- 【LeetCode】Ugly Number II 解题报告
- [Leetcode] 260. Single Number III 解题报告
- LeetCode 136. Single Number 解题报告
- [leetcode] 171. Excel Sheet Column Number 解题报告
- LeetCode解题报告 452. Minimum Number of Arrows to Burst Balloons [medium]
- LeetCode-Ugly Number II-解题报告
- LeetCode 171. Excel Sheet Column Number 解题报告