随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣9(java)-回文数(简单)

题目:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

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

例如,121 是回文,而 123 不是。
 

示例 1:

输入:x = 121
输出:true
示例 2:

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

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

提示:

-231 <= x <= 231 - 1
 

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

一、运用数学思维

1.如果是负数,不是回文数,返回false;

2.如果是正数,把当前数的倒序数算出来(例如:123-->321),如果倒序数与当前数相等则说明是回文数(比如:121--> 121)返回true,不等则返回false;

代码:

 

二、数学方法进阶

1.首先如果为负数,肯定不是回文数,直接返回false;

2.0本身就是回文数,如果末尾数字为0(10的倍数,10,20,30....),则首个数字一定要为0(即为0本身)才会为回文,所以写成:x != 0 && x /10 ==0 这样直接返回false;

3.将整数进行反转,反转后的数字与原数字相同则是回文数,在反转时只用反转一半就可以判断是否为回文了。数字长度为偶数时,最终只需要判断 cur == x,数字长度为奇数时,最终通过 cur / 10去除掉中间的那一位,在与x进行判断是否相等即可。

 代码:

 

posted on   我不想一直当菜鸟  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示