每日一练之Palindrome Number【LeetCode No.9】—判断是否为回文数

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.


//分析:判断一个整数是否为回文数,但题目要求不能使用额外的空间,使用数字翻转法也要考虑是否会溢出的问题,所以选择更通用的方法-数字位判断法,先判断第一位和最后一位是否相等,相等则继续判断,否则直接返回false.


数字翻转法(可能会溢出):

public class Solution {
    public boolean isPalindrome(int x) {
        int a = x, r = 0;

        if (x < 0) return false;

        while (a > 0) {
            r = r*10 + a%10;
            a = a / 10;
        }

        return r == x;
    }
}



数字位判断法(更通用):

class Solution {
public:
    bool isPalindrome(int x) {
   if(x<0) return false;
   int div=1;
   while (x/div>=10){
   div*=10;}
   
   while(x!=0){
       int first_wei=x/div;
       int last_wei=x%10;
       if(first_wei!=last_wei) return false;
       x=x%div/10;
       div/=100;
   }
   return true;
    }
};

全部评论

相关推荐

喜提窑鸡一筐:简历排版有一些问题,如果没有排版能力建议直接在超级简历用现成模板(无广,建议超级简历看到结一下账,别有那些太花里胡哨的,简历架构按:教育背景,实习经历,项目经历,其他能力概述/获奖经历,教育背景简单写点说明学校专业,在读时间即可,GPA好看可以写上去,不好看不用写,背景整体篇幅占15%以内,大篇幅给实习经历和项目经历,项目经历别写太多废话,HR都懒得看,通常按项目目标,具体工作1.2.3点/涉及技术栈,项目成果这样结构化展开,如果没有实现经历最好是有2-3段项目经历,其他最后补充点个人能力综述and获奖经历即可
点赞 评论 收藏
分享
01-18 09:26
已编辑
门头沟学院 Java
王桑的大offer:建议中间件那块写熟悉即可,写掌握 面试包被拷打到昏厥
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务