`
SunnyYoona
  • 浏览: 361489 次
社区版块
存档分类
最新评论

[LeetCode]9.Palindrome Number

 
阅读更多

【题目】

Determine whether an integer is a palindrome. Do this without extra space.

click to show spoilers.

Some hints:

Could negative integers be palindromes? (ie, -1)

If you are thinking of converting the integer to string, note the restriction of using extra space.

You could also try reversing an integer. However, if you have solved the problem "Reverse Integer", you know that the reversed integer might overflow. How would you handle such case?

There is a more generic way of solving this problem.

【分析】

将整数反转,然后与原来的数比较,如果相等则为Palindrome Number否则不是

【代码】

/*********************************
*   日期:2015-01-20
*   作者:SJF0115
*   题目: 9.Palindrome Number
*   网址:https://oj.leetcode.com/problems/palindrome-number/
*   结果:AC
*   来源:LeetCode
*   博客:
**********************************/
#include <iostream>
using namespace std;

class Solution {
public:
    bool isPalindrome(int x) {
        // negative integer
        if(x < 0){
            return false;
        }//if
        int tmp = x;
        int n = 0;
        // reverse an integer
        while(tmp){
            n = n * 10 + tmp % 10;
            tmp /= 10;
        }//while
        return (x == n);
    }
};

int main(){
    Solution solution;
    int num = 1234321;
    bool result = solution.isPalindrome(num);
    // 输出
    cout<<result<<endl;
    return 0;
}

【分析二】

上一种思路,将整数反转时有可能会溢出。

这里的思路是不断的取第一位和最后一位(10进制)进行比较,相等则取第二位和倒数第二位.......直到完成比较或者中途不相等退出。

【代码二】

class Solution {
public:
    bool isPalindrome(int x) {
        // negative integer
        if(x < 0){
            return false;
        }//if
        // 位数
        int divisor = 1;
        while(x / divisor >= 10){
            divisor *= 10;
        }//while
        int first,last;
        while(x){
            first = x / divisor;
            last = x % 10;
            // 高位和低位比较 是否相等
            if(first != last){
                return false;
            }//if
            // 去掉一个最高位和一个最低位
            x = x % divisor / 10;
            divisor /= 100;
        }//while
        return true;
    }
};










分享到:
评论

相关推荐

    LeetCode9 Palindrome Number

    Determine whether an integer is a palindrome. Do this without extra space. Java AC版本

    LeetCode Palindrome Number解决方案

    LeetCode Palindrome Number解决方案

    程序员面试宝典LeetCode刷题手册

    9. Palindrome Number 11. Container With Most Water 13. Roman to Integer 15. 3Sum 16. 3Sum Closest 17. Letter Combinations of a Phone Number 18. 4Sum 19. Remove Nth Node From End of List 20. Valid ...

    lrucacheleetcode-leetcode:leetcode

    Palindrome Number 11. Container With Most Water 12. Integer to Roman 13. Roman to Integer 14. Longest Common Prefix 15. 3Sum 20. Valid Parentheses 21. Merge Two Sorted Lists 22. Generate Parentheses ...

    LeetCode最全代码

    268| [Missing Number](https://leetcode.com/problems/missing-number/) | [C++](./C++/missing-number.cpp) [Python](./Python/missing-number.py) | _O(n)_ | _O(1)_ | Medium | LintCode || 318| [Maximum ...

    leetcode338-LeetCode:LeetCode刷题总结

    9.Palindrome Number 10.Regular Expression Matching 11.Container With Most Water 12.Integer to Roman 13.Roman to Integer 14.Longest Common Prefix (Trie树待完成) 15.3Sum 16.3Sum Closest 17.Letter ...

    LeetCode C++全解

    1. Introduction 2. Array i. Remove Element ii. Remove Duplicates from Sorted Array ... Palindrome Number xi. Search a 2D Matrix xii. Search for a Range xiii. Search Insert Position xiv. Find Peak Element

    Leetcode回文串拼接-leetcode_note:用于记录leetcode题目的解析

    9.Palindrome Number 10.String To Integer 11.Container With Most Water 12.Integer To Roman 13.Roman To Integer 289 347 380 442 457 Circular Array Loop 535 Encode and Decode TinyURL 560 565 566 Maximum ...

    leetcode卡-leetcode:一些leetcode问题的解决方法,请注意license!

    Leetcode\PalindromeNumber\PalindromeNumber.cs 问题: 从排序数组中删除重复项 代码: Leetcode\RemoveDuplicates\RemoveDuplicates.cs 问题: 买卖股票的最佳时机 II 代码: Leetcode\MaxProfit\MaxProfit.cs ...

    lrucacheleetcode-leetcode-1:leetcode-1

    Palindrome Number 回文数字 10. Regular Expression Matching 动态规划,列出转换方程即可,注意初值 记T[i][j] = 是否S[0:i]和P[0:j]匹配 再分类讨论,其中pattern *分为0, 1, more三种类型 0: i不变, j+1

    leetcodepython001-algorithm:leetcode问题(cpp、java、python),书籍破解_the_coding

    leetcode Python 001 leetcode的算法问题 ...Palindrome Number 010. Regular Expression Matching 011. Container With Most Water 012. Integer to Roman 013. Roman to Integer 014. Longest Common Prefix 019. R

    lrucacheleetcode-Algorithm:一些常见的算法的解题报告

    lru ...9.Palindrome Number 11.Container With Most Water 14.Longest Common Prefix 15.3Sum 16.3Sum Closest 19.Remove Nth Node From End of List 20.Valid Parentheses 21.Merge Two Sorted L

    leetcode跳跃-LeCode:乐科

    Palindrome Number 回文数 10. Regular Expression Matching 正则表达式匹配 11. Container With Most Water 盛最多水的容器 12. Integer to Roman 整数转罗马数字 13. Roman to Integer 罗马数字转

    leetcode2-Algorithms-Practice:创建此repo是为了跟踪我在解决问题方面的进展

    Palindrome Number 运行时间:92 毫秒内存使用:14 MB 13. Roman to Integer 运行时间:52 毫秒内存使用:14.1 MB 14. Longest Common Prefix 运行时间:40 毫秒内存使用:13.9 MB 20. Valid Parentheses 运行时间:...

    丢失的最小正整数leetcode-LeetCodePractice:我的LeetCode练习

    Number:我的思路是直接利用取余法求得倒过来的数然后与原数据进行比较,直接但效率不高,从其他人那看到的思路,其实可以只求一半倒数然后与另一半作比较,既方便又快捷。 13. Roman to Integer:这道题没有思路,...

    leetcode数组下标大于间距-leetcode:leetcode刷一遍

    leetcode数组下标大于间距 5. Longest Palindromic Substring 这里使用menecher方法,就是动态规划,首先在原先的字符串之间插入'#, 这样可以统一处理奇数串和偶数串, 使用两个变量纪录状态, far_pos表示最长回文...

    LeetCode-1:LeetCode题集

    这是我在的刷题集,详情参见__注释__。 未完待续!!! 已完成 27. Remove Element 14. Longest Common Prefix 9. Palindrome Number 7. Reverse Integer 1. Two Sum License The MIT License (MIT)

    判断链表是否为回文链表leetcode-Leetcode:leetcode的解决方案

    9.Palindrome Number 判断一个整数是否是回文。 当一个整数向后读与向前读相同时,它就是回文。 示例 1: 输入:121 输出:true 示例 2: 输入:-121 输出:false 解释:从左到右,读数为 -121。 从右到左,它变成 ...

    leetcode答案-leetcode-cpp:LeetcodeC++练习

    Palindrome Number 先排除错误答案,比如说负数和不为零但能被10整除的数,然后就和上面的reverse integer一毛一样了。需要注意的是这一次仅仅是判断,所以走完一半就行了,还需要考虑整个数是奇数位还是偶数位的...

    leetcode题库-LeetCode:力码

    Number.cpp 12 整数转罗马数字 Integer to Roman.cpp 13 罗马数字转整数 Roman to Integer.cpp 15 三数之和 3Sum.cpp 最接近的三数之和 3Sum Closest .cpp 20 有效的括号 Valid Parentheses.cpp 22 括号生成 G

Global site tag (gtag.js) - Google Analytics