博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.回文数
阅读量:3977 次
发布时间:2019-05-24

本文共 1296 字,大约阅读时间需要 4 分钟。

文章目录


一、题目描述

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8LZpZBPv-1623460501235)(C:\Users\86182\AppData\Roaming\Typora\typora-user-images\image-20210603184610835.png)]

二、解题思路

当然首先理解回文数是什么呀!这道题其实与整数反转那道的思路很类似,首先我们是不是可以也是用取余操作得到的数作为反转之后的首位数呢。只不过这里考虑一个问题就是如果整除了也就是没有余数的情况怎么办。

三、代码编写步骤

第一步:先判断返回false的情况,也就是不能反转,通过分析有这样几种情况:1.小于0;2.整除10没有余数并且还要满足概述不等于0的情况。

第二步:开始进行反转的操作,先声明两个变量一个用来存储反转之后的数,一个是存储原始的输入x(x在计算时会改变,所以声明一个全局变量)。

第三步:进行反转操作,这里就不详细分析了,在我的博客关于整数反转那道题有呢。

第四步:判断反转之后的数与原来的x是不是相等。

四、代码演示

class Solution {
public boolean isPalindrome(int x) {
if (x<0 ||(x%10==0 && x!=0)) {
return false; } int ret =0; int s = x; while(x>0){
int low = x % 10; //取个位数 x = (x-low)/10; ret = ret*10+low; //反转之后最高位数 } x = ret; //将反转之后的数赋值给x if(s==x||x==0){
//这里就要进行判断了,判断反转之后的数ret是不是与原来的x相等或者等于0 return true; } return false; }}

第2行:将几种绝对为false的情况先列举出来,x<0,或x%100类似于10,20…个位是0的数字,因为0是回文数,但0%10=0,同时还要满足一个x不为0的情况。

第6行:定义整型变量ret=0

第7行:首先将x赋值给s,便于下面第14行的判断。

第8到12行:这是一个反转整数的操作,与题2的一样

第13到16行:在上面计算出来的ret是一个反转之后的整数了,这里我赋值给x,然后在if判断里,判断s是否等于x,这里的s是上面赋值的最初的x;或者满足条件x==0,则返回true

第17行:除了上述方法涉及的情况外,下面再出现的条件放回false。

0,则返回true

第17行:除了上述方法涉及的情况外,下面再出现的条件放回false。

总结

这道题思路与整数反转那道题很像,当然解题方法肯定有很多,这里知识提供一下我自己的理解和感悟,新手小白刚开始刷题不足之处往留言指教,感谢。

转载地址:http://pogki.baihongyu.com/

你可能感兴趣的文章
LINUX驱动之IIC子系统之三I2C的数…
查看>>
Linux设备驱动之I2C架构分析
查看>>
浅析linux内核中的idr机制
查看>>
i2c子系统之__i2c_first_dynamic_b…
查看>>
linux内核SPI总线驱动分析(一)
查看>>
浅析linux内核中的idr机制
查看>>
source&nbsp;insight使用
查看>>
linux内核SPI总线驱动分析(一)
查看>>
linux设备模型之uart驱动架构分析
查看>>
source&nbsp;insight使用
查看>>
git基本使用
查看>>
七、WordPress配置HTTPS与开启CDN加速
查看>>
CentOS 6.7下MySQL 5.6 yum快速安装及参数详解
查看>>
CentOS6.8二进制安装MySQL5.6
查看>>
centos 6x系统下源码安装mysql操作记录
查看>>
Centos搭建Mysql主从复制
查看>>
centos下部署redis服务环境及其配置说明
查看>>
Centos7下部署两套python版本并存环境的操作记录
查看>>
利用阿里云的源yum方式安装Mongodb
查看>>
Mysql的二进制日志binlog的模式说明
查看>>