Leetcode之回文数
问题描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 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之回文数相关推荐
- [模拟|数位] leetcode 9 回文数
[模拟|数位] leetcode 9 回文数 1.题目 题目链接 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true ...
- 【LeetCode】回文数
个人博客:https://jacob.org.cn package leetcode.editor.cn;//判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. ...
- LeetCode 9. 回文数
文章目录 1. 题目信息 2. 解题 1. 题目信息 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121 输出: true 示例 2:输 ...
- leetcode isPalindrome (回文数判断)
回文很简单,就是正着读和反着读一样,要判断一个数是否为回文数只需要判断正反两个是不是相等即可. 再往深了想一下,只需要判断从中间分开的两个数一个正读,一个反读相等即可. 代码: class Solut ...
- 20200119:(leetcode)回文数(3种解法)
回文数 题目 基本思路 代码实现 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -1 ...
- Leetcode 9. 回文数(Palindrome Number)
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- leetcode 9 --- 回文数
1 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 2 解法 2.1 初版 2.1.1 思路 由于题目不允许把数直接转化为字符串, 所以想到了把数的每一 ...
- leetcode记录-回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- LeetCode - 9. 回文数
9. 回文数 class Solution {public boolean isPalindrome(int x) {String s = String.valueOf(x);char[] chars ...
- LeetCode 9. 回文数 Palindrome Number
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
最新文章
- CodeForces 631D Messenger
- 预训练永不止步,游戏问答语言模型实操
- docker harbor 域名_超详细的搭建docker私服Harbor教程
- python中new方法详解及_Python中new方法的详解
- php验证码背景图是数字,ThinkPHP5.0.20验证码背景图片
- mac下npm/node的安装和卸载、升级;node、npm升级后最后删掉node_modules重新安装
- amazon php 空间,(四)Amazon Lightsail 部署LAMP应用程序之扩展PHP前端
- MongoDB学习手记
- 程序员都长得丑?颜值底线是程序员?
- Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
- indesign用于产品排班_2019年机器人行业十大新品盘点,过去一年最受关注的产品都在这...
- SketchUp插件开发(一)简介
- 关于Webgl实际中遇到的一些坑,与大家分享。
- B站首个千万级up主!论老番茄是如何炼成的!
- Java爬取彼岸桌面壁纸的实现(使用Jsoup)
- 自问自答学ArrayList,看这篇就够了,详解问答
- python+微信+腾讯智能闲聊
- VMware下Ubuntu如何与主机进行文件共享(留作自用)
- 第五代计算机网络会是什么样,作为第五代移动通信网络 5G电影院是怎样的体验...
- 【离散椭圆弧】将椭圆弧按弧长等分为一定数量弧上点