`
frank-liu
  • 浏览: 1666060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

leetcode: Palindrome Number

 
阅读更多

问题描述:

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

 

原问题链接:https://leetcode.com/problems/palindrome-number/

 

 

问题分析

    判断回文数字的问题其实思路也比较简单。就是每次从数字的最高位和最低位进行比较。如果一直比较到它们两个位置重叠了还是相同的,那么就返回true,否则就返回false。因为每次要返回最高位,所以我们需要有一个数字来计算最高位。比如说1123,那么要求最高位我们就需要用这个数字除以1000。在求得这个数字之后,每次原数字除以它就得到最高位,原数字对10取模操作就得到最低位。假设这个数字为cal。下一次数字就要去掉最高和最低两个位。这个时候就需要首先该数字对cal取模去掉最高位的数字,然后再除以10以去掉最低位的数字。 

    在求这个最高位对应的值时,我们需要对cal不断乘以10并将它和目标数字比较。这里容易导致的一个问题就是当目标数字比较大的时候,它容易导致溢出。所以在实现的时候应该声明为long类型,然后在后面的计算中再转换回来。

    根据讨论,得到代码如下:

 

public class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0) return false;
        long t = 1;
        while (t * 10 <= x) t *= 10;
        int cal = (int) t;
        while (x != 0) {
            if (x % 10 != x / cal) return false;
            x = (x % cal) / 10;
            cal /= 100;
        }
        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卡-leetcode:一些leetcode问题的解决方法,请注意license!

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

    戳气球leetcode-leetcode:leetcode

    leetcode category other hot keywords:Palindrome(mic), Subsequence Array 螺旋矩阵Spiral Matrix 顺时针打印矩阵 Next Permutation Product of Array Except Self 189.rotate-array 283.move-zero Range Sum ...

    leetcode答案-LeetCode:Swift中的LeetCode

    Palindrome Number Easy #13 Roman to Integer Easy #21 Merge Two Sorted Lists Easy #26 Remove Duplicates from Sorted Array Easy #27 Remove Element Easy #35 Search Insert Position Easy #38 Count and Say ...

    leetcode2-Leetcode:Leetcode_answer

    leetcode 2 Leetcode答案集 关于项目: ...Palindrome Number JavaScript O(n) O(1) Easy 19 Remove Nth Node From End of List JavaScript O(n) O(1) Medium 21 Merge Two Sorted Lists JavaScript O(n)

    leetcode题库-LeetCode:力码

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

    leetcode338-LeetCode:LeetCode刷题总结

    LeetCode刷题总结 1.Two Sum 2.Add Two Numbers 3.Longest Substring Without Repeating Characters 4.Median of Two Sorted Arrays 5.Longest Palindromic Substring (Manacher算法待完成) 6.ZigZag Conversion 7....

    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:LeetCode实践

    LeetCode 练习 语言 JavaScript 打字稿 Python3 用法 产生目录 yarn generate:TOC ...跟随提示,输入译文ID,标题,索引,难易度,将会自动建立...如: git commit -m ":check_mark_button: solve palindrome-number

    leetcode2sumc-leetcode:JavaScript版本leetcode中文版代码

    Palindrome Number 简单 11 Container With Most Water 中等 12 Integer to Roman 中等 13 Roman to Integer 简单 14 Longest Common Prefix 简单 15 3Sum 中等 16 3Sum Closest 中等 17 Letter Combinations of a ...

    leetcode双人赛-LeetCode:力扣笔记

    leetcode双人赛LeetCode 编号 题目 难度 题型 备注 Two Sum 简单 Add Two Numbers 中等 链结串列 重要 Longest Substring Without Repeating Characters 中等 字串 重要 Median of Two Sorted Arrays 困难 数学 ...

    leetcode2sum-Problems:编程问题的回购

    leetcode 2sum # Programming-Problems This will have many problems from all over the web, As of writing this readme there is Haskell 99: 28 finished ...LeetCode: ...Palindrome Number [Easy] LC11:

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

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

    leetcode中国-leetcode:leetcode刷题

    Palindrome Implement strStr() String to Integer (atoi) addBinary longestPalindrome maximal rectangle :dp问题,较难 largestRectangleArea 求直方图的最大面积,左右两次扫面+剪枝优化 Valid Parentheses 用栈...

    LeetCode:LeetCode题解

    LeetCode LeetCode题解 传送门 # 标题 解决方案 困难 笔记 1个 简单的 3 ... Valid_Palindrome Java 简单的 136 单号 Java 简单的 137 Single_NumberII Java 中等的 167 Two_Sum_II_Input_

    leetcodepython001-LeetCode:力码

    009_Palindrome_Number 2021 年 1 月 7 日 Python 004 013_Roman_to_Integer 2021 年 1 月 9 日 Python 005 014_Longest_Common_Prefix 5 月 12 日。 2021年 Python 006 020_Valid_括号 5 月 12 日。 2021年 Python ...

    javalruleetcode-leetcode:leetcode问题的解决方案

    0009_Palindrome_Number 0010_Regular_Expression_Matching 0011_Container_With_Most_Water 0012_Integer_to_Roman 0013_Roman_to_Integer 0014_Longest_Common_Prefix 0015_3总和 0016_3Sum_Closest 0017_Letter_...

    leetcode:js 110 385的leetcode

    这是带有js的leetcode解决方案。 我已经对一些leetcode问题做了...Palindrome Number.js) 12.整数到罗​​马 查看说明 [查看源代码](./ js / 12。转换为Roman.js的整数) 13.罗马到整数 查看说明 [查看源代码]

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

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

Global site tag (gtag.js) - Google Analytics