zoukankan      html  css  js  c++  java
  • leecode 140:palindrome-number

    题目描述

    在不使用额外的内存空间的条件下判断一个整数是否是回文数字
    提示:
    负整数可以是回文吗?(比如-1)
    如果你在考虑将数字转化为字符串的话,请注意一下不能使用额外空间的限制
    你可以将整数翻转。但是,如果你做过题目 反转数字 你会知道将整数翻转可能会出现溢出的情况,你怎么处理这个问题?
    题目分析:
    这道题可以巧妙的借助一个reverse值,这个reverse值是从输入值从中间开始的后半部分从低位到高位转换成数字,而输入值变为原来的前半部分。如果输入的数据等于输入值,则表示输入值的位数为奇数,此数字为回文数字,要么是reverse/10等于输入值,则表示输入值的位数为偶数。除此之外的其他情况都表明输入的不是回文数字。
    代码如下:
     1  bool isPalindrome(int x) {
     2        if(x < 0 ||x!=0 && x%10 == 0)
     3            return false;
     4         int reverse = 0;
     5         while(x > reverse)
     6         {
     7             reverse = reverse * 10 + x%10;
     8             x /= 10;
     9         }
    10         return (reverse == x || reverse/10 == x);
    11     }
  • 相关阅读:
    刻舟求剑,
    录制时间是不准确的,
    HIV T2
    DNA RNA
    洛谷 P1428 小鱼比可爱
    Codevs 1081 线段树练习2
    Codevs 1080 线段树联系
    Tarjan算法
    Codevs 2611 观光旅游
    洛谷 1865 A%B问题
  • 原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13490380.html
Copyright © 2011-2022 走看看