专栏首页MyTechnology每日一刷:回文数

每日一刷:回文数

自言自语

题目来源于leetcode,每日一刷小算法。

不管遇到什么挫折,明天的太阳都会照样升起

题目

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121 输出: true

示例 2:

输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。

进阶:

你能不将整数转为字符串来解决这个问题吗?

分析:

回文数一般短小的我们肉眼就可以看出来嘛,因为前一半后一半是对称的。

所以我们把后面一半的数字反向取出,跟前一半对比是否相等。

通过%10可以获取最后一个数字,通过a = a*10+x/10可以获取后半段,然后跟前一半对比。

例如 x = 1221

a = 0;

a = a*10+x/10 = 1

x = 1221/10 = 122

以此循环,当a>x时跳出循环即可。

由于存在0和单双位数,我们需要根据实际答题情况多加一个if。

class Solution {
    public boolean isPalindrome(int x) {
        if(x < 0 || (x % 10 == 0 && x != 0)){
            return false;
        }
        int a = 0;
        while(a <= x){
            if(a == x){
                return true;
            }
            a = a * 10 + x % 10; b
            if(a == x){
                return true;
            }
            x = x / 10;
        }
        return false;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 作业-原生js完成轮播图与悬停

    代码亮点:增加图片时,你只需要再加一个li就可以了。不需要改动其他任何代码。

    乐心湖
  • Ubuntu“无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)

    [scode type="yellow"]Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)[/scode]

    乐心湖
  • 上传文件时出现跨域问题

    所以啊,这根本不是跨域的问题,Tomcat默认上传的文件大小就是1MB,你上传的文件超过而已。

    乐心湖
  • 常用进制转换方法(取商留余)原理解析, 附基于栈实现进制转换的代码

    说起进制间的转换,可能除留取余法(我自己编的名字,没找到原来叫什么名字...)是用的最普遍的了,但是我们是否想过,使用得最普遍的方法的原理到底是什么呢?

    执生
  • 互联网法律动态报告(10月版)

    互联网法律动态报告(10月版) 腾讯互联网与社会研究院 法律研究中心 重点摘要: ●2014年10月,网络治理、知识产权、竞争规则、电子商务、互联...

    腾讯研究院
  • 不同时间复杂度的规模上限

    饶文津
  • Leetcode-Easy 806. Number of Lines To Write String

    给一个字符串S,从左到右将它们排列行,每行最大长度为100,,同时给定一个数组withds,widths[0]对应着 a的宽度, widths[1]对应着b的宽...

    致Great
  • 数据分表小结

    本次拆分主要包括订单和优惠券两大块,这两块都是覆盖全集团所有分子公司所有业务线。随着公司的业务飞速发展,不管是存储的要求,还是写入、读取的性都基本上到了警戒水位...

    王清培
  • 自增自减表达式-c语言学习笔记

    Youngxj
  • leetcode-806-Number of Lines To Write String

    chenjx85

扫码关注云+社区

领取腾讯云代金券