问题描述

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

示例 1:

输入: 121
输出: true

示例 2:

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

示例 3:

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

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

解法

字符串解法

public boolean isPalindrome(int x) {String str=x+"";for(int i=0;i<str.length();i++){if(str.charAt(i)!=str.charAt(str.length()-i-1)) {return false;}}return true;}

非字符串解法

//将反过来的每一位计算的结果看是不是等于原数字
public boolean isPalindrome(int x) {if(x<0)//带-号不是回文数字return false;int a=x;//保存xint b=x%10;x/=10;while(x!=0){b=10*b+x%10;x/=10;}return b==a;}

官方解法

看到官方解法是反转一半数字,因为回文的后一半应该和前一半相等。得到后一半数字的方法是使用push和pop的方法(除和取模)

public boolean isPalindrome(int x) {// 特殊情况:// 如上所述,当 x < 0 时,x 不是回文数。// 同样地,如果数字的最后一位是 0,为了使该数字为回文,// 则其第一位数字也应该是 0// 只有 0 满足这一属性if (x < 0 || (x % 10 == 0 && x != 0)) {return false;}int revertedNumber = 0;while (x > revertedNumber) {//使用判断大小的方法revertedNumber = revertedNumber * 10 + x % 10;x /= 10;}// 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。// 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,// 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。return x == revertedNumber || x == revertedNumber / 10;}

Leetcode之回文数相关推荐

  1. [模拟|数位] leetcode 9 回文数

    [模拟|数位] leetcode 9 回文数 1.题目 题目链接 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true ...

  2. 【LeetCode】回文数

    个人博客:https://jacob.org.cn package leetcode.editor.cn;//判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. ...

  3. LeetCode 9. 回文数

    文章目录 1. 题目信息 2. 解题 1. 题目信息 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121 输出: true 示例 2:输 ...

  4. leetcode isPalindrome (回文数判断)

    回文很简单,就是正着读和反着读一样,要判断一个数是否为回文数只需要判断正反两个是不是相等即可. 再往深了想一下,只需要判断从中间分开的两个数一个正读,一个反读相等即可. 代码: class Solut ...

  5. 20200119:(leetcode)回文数(3种解法)

    回文数 题目 基本思路 代码实现 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -1 ...

  6. Leetcode 9. 回文数(Palindrome Number)

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...

  7. leetcode 9 --- 回文数

    1 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 2 解法 2.1 初版 2.1.1 思路 由于题目不允许把数直接转化为字符串, 所以想到了把数的每一 ...

  8. leetcode记录-回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...

  9. LeetCode - 9. 回文数

    9. 回文数 class Solution {public boolean isPalindrome(int x) {String s = String.valueOf(x);char[] chars ...

  10. LeetCode 9. 回文数 Palindrome Number

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...

最新文章

  1. CodeForces 631D Messenger
  2. 预训练永不止步,游戏问答语言模型实操
  3. docker harbor 域名_超详细的搭建docker私服Harbor教程
  4. python中new方法详解及_Python中new方法的详解
  5. php验证码背景图是数字,ThinkPHP5.0.20验证码背景图片
  6. mac下npm/node的安装和卸载、升级;node、npm升级后最后删掉node_modules重新安装
  7. amazon php 空间,(四)Amazon Lightsail 部署LAMP应用程序之扩展PHP前端
  8. MongoDB学习手记
  9. 程序员都长得丑?颜值底线是程序员?
  10. Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
  11. indesign用于产品排班_2019年机器人行业十大新品盘点,过去一年最受关注的产品都在这...
  12. SketchUp插件开发(一)简介
  13. 关于Webgl实际中遇到的一些坑,与大家分享。
  14. B站首个千万级up主!论老番茄是如何炼成的!
  15. Java爬取彼岸桌面壁纸的实现(使用Jsoup)
  16. 自问自答学ArrayList,看这篇就够了,详解问答
  17. python+微信+腾讯智能闲聊
  18. VMware下Ubuntu如何与主机进行文件共享(留作自用)
  19. 第五代计算机网络会是什么样,作为第五代移动通信网络 5G电影院是怎样的体验...
  20. 【离散椭圆弧】将椭圆弧按弧长等分为一定数量弧上点

热门文章

  1. Java 连接SQLite数据库
  2. Server Application Error(IIS)
  3. exploration 和 exploitation 的区别
  4. 游标需要手动关闭吗MySQL,【MySQL必知必会】使用游标
  5. Android入门笔记10
  6. html语言考点,HTML知识点
  7. Linux for Matlab中文注释乱码(亲测有效)
  8. python可视化利器Yellowbrick实践
  9. python求解按等级分配糖果问题
  10. 【Python】 html解析BeautifulSoup