算法练习题---回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
解法一:将数字反转后,直接比较两个数字的大小
package com.zx.leetcode.isPalindrome; /** * @Author JAY * @Date 2019/6/7 12:26 * @Description 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 **/ public class Solution { public static void main(String[] args) { System.out.println(isPalindrome(2147483647)); System.out.println(isPalindrome(121)); } public static boolean isPalindrome(int x) { //需要考虑数字反转之后是否超过int的界限 if(x < 0){ return false; } int y = x; String num = String.valueOf(x); int length = num.length(); double convertNum = 0; for(int i = length - 1; i >= 0 ; i--){ int high = (int) (x / Math.pow(10,i)); convertNum = convertNum + high * Math.pow(10,length - i - 1); x = (int) (x - high * Math.pow(10,i)); } if (convertNum == y){ return true; } return false; } }
解法二:通过取整和取余操作获取整数中对应的数字进行比较。
1 package com.zx.leetcode.isPalindrome; 2 3 /** 4 * @Author JAY 5 * @Date 2019/6/7 12:26 6 * @Description 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 7 **/ 8 public class SolutionV2 { 9 10 public static void main(String[] args) { 11 System.out.println(isPalindrome(2147483647)); 12 System.out.println(isPalindrome(121)); 13 } 14 15 public static boolean isPalindrome(int x) { 16 17 //需要考虑数字反转之后是否超过int的界限 18 //边界判断 19 if (x < 0) { 20 return false; 21 } 22 int div = 1; 23 // 24 while (x / div >= 10) { 25 div *= 10; 26 } 27 while (x > 0) { 28 int left = x / div; 29 int right = x % 10; 30 if (left != right) { 31 return false; 32 } 33 x = (x % div) / 10; 34 div /= 100; 35 } 36 return true; 37 } 38 }
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?