当前位置: 首页 > news >正文

力扣经典算法篇-45-回文数(数字处理:求余+整除,字符串处理:左右指针)

1、题干

给你一个整数 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

2、解题

数字的处理通常有两种方式。
第一种求余法,结合数字除以10,可以从尾部逐个获取数字;
第二个转字符串,对转成的字符串可以逐个字符进行处理。

方法一:(Java工具方法)

直接通过字符串反转的方式进行字符串比较。这种方式在web项目开发中经常用到,但如果是考算法的话,不建议。

代码示例:

public static boolean isPalindrome(int x) {if (x < 0) {return false;}String s = String.valueOf(x);String reverse = StringUtils.reverse(s);return StringUtils.equals(s,reverse);
}

方法二:(转字符串+左右指针法)

将数字转字符串,结合左右指针法,依次取出最左和最右未校验的字符进行比较处理。

代码示例:

public static boolean isPalindrome(int x) {if (x < 0) {return false;}String s = String.valueOf(x);int start = 0;int end = s.length() - 1;while (start <= end) {char startC = s.charAt(start++);char endC = s.charAt(end--);if (startC != endC) {return false;}}return true;}

方法三:(数字处理:求余+整除)

通过求余+整除的方式,可以逐个取出末尾的数字,在反向乘10求和得出反转值。

代码示例:

public static boolean isPalindrome(int x) {if (x < 0) {return false;} else if (x==0){return true;} else if (x%10==0){return false;}int temp = x;int reverseSum =0;while (temp>0){reverseSum = reverseSum*10 + temp%10;temp = temp/10;}return x == reverseSum;}

向阳前行,Dare To Be!!!

http://www.dtcms.com/a/317331.html

相关文章:

  • 【2025.08.06最新版】Android Studio下载、安装及配置记录(自动下载sdk)
  • Java 使用动态代理和反射实现字段变更跟踪
  • 一种基于潜在表征的轻量级无人机热成像超分辨率网络
  • Linux systemd 系统管理:systemctl 控制服务与守护进程
  • Redis集群核心原理与实战解析
  • Pytest项目_day04(Python做接口请求)
  • PyTorch生成式人工智能(26)——使用PyTorch构建GPT模型
  • 语言模型的多个agent
  • Java学习第一百一十部分——CI/CD
  • 输电线路防外破声光预警装置 | 防山火/防钓鱼/防施工安全警示系统
  • vue中reactive()和ref()的用法
  • FluentUI的介绍与使用案列
  • 组合期权:股票担保策略
  • Suno API V5模型 python源码 —— 使用灵感模式进行出创作
  • 从原理图到PCB的布局
  • 优选算法1
  • 学习资料推荐
  • 商用音乐素材获取:素材平台、AI制作与版权考量
  • 如何将照片从POCO手机传输到Mac电脑
  • OpenAI GPT-OSS:首个可在笔记本上运行的推理模型
  • 科技云报到:Agent应用爆发,谁成为向上托举的力量?
  • 微算法科技(NASDAQ:MLGO)利用鸽群分散算法,提高区块链交易匹配算法效能
  • 【博客系统UI自动化测试报告】
  • 【递归完全搜索】USACO Bronze 2019 December - 奶牛排列Livestock Lineup
  • 每日算法刷题Day57:8.6:leetcode 单调栈6道题,用时2h
  • 【前端开发】五. ES5和ES6对比
  • Android 之 Kotlin中的符号
  • OpenObserve非sql模式 query editor 中 xx like ‘|’报错如何处理
  • RNN梯度爆炸/消失的杀手锏——LSTM与GRU
  • Disruptor 的原理、应用场景