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

【每日刷题】回文数

9. 回文数 - 力扣(LeetCode)

方法一

转换为字符串后判断。

class Solution {public boolean isPalindrome(int x) {String s = String.valueOf(x);int n = s.length() - 1;for(int i = 0; i <= n / 2; i++) {if(s.charAt(i) != s.charAt(n - i)) {return false;}}return true;}
}

方法二

处理x,逐位比较最高位和最低位,判断是否相等。

首先考虑如果x<0,带负号,肯定不是回文数,返回false。

之后是x为正数时的思路。最低位比较容易得到,x%10即可。如何得到最高位呢?首先用cnt记录x的位数,通过循环除以10统计总位数。之后用 x / (10^(cnt-1)) 即可得到x的最高位,再与最低位比较,如果不相等就返回false。如果最高位与最低位相等,用 x %= (int)Math.pow(10, cnt-1) 去除最高位,用 x /= 10 去除最低位,注意去除了两位数,所以cnt要减2。

class Solution {public boolean isPalindrome(int x) {if(x < 0) {return false;}int cnt = 0;int tx = x;while(tx != 0) {tx /= 10;cnt++;}while(x > 0) {int l = x / (int)Math.pow(10, cnt-1);int r = x % 10;if(l != r) {return false;}x %= (int)Math.pow(10, cnt-1);x /= 10;cnt -= 2;}return true;}
}

方法三

来源于官方题解,反转一半数字,然后判断是否为回文数。当数字为偶数时直接判断 x == revertedNumber 是否成立,但当数字长度为奇数时,需要通过 revertedNumber/10 去除处于中位的数字。注意需要特判末尾为0的数。

class Solution {public boolean isPalindrome(int x) {if(x < 0 || (x % 10 == 0 && x != 0)) {return false;}int revertedNumber = 0;while(x > revertedNumber) {revertedNumber = revertedNumber * 10 + x % 10;x /= 10;}return x == revertedNumber || x == revertedNumber / 10;}
}

碎碎念

看八股看烦了,这个八股到底谁背得过,我到底为什么要来卷卷卷卷卷的Java后端啊!!!一怒之下怒了一下,怒刷题。今天把面试150下数学专栏的题刷了,还剩一道hard,明天再刷。因为今晚要写一二三四……五篇题解,所以就先不附Python版本代码了。

思路也会写得比较简单。毕竟本来就是数学专栏,这个想得到就是想得到,想到了代码就出来了,想不到怎么都想不到。做过就会,但完全没做过能自己想出来的可能性很小。

http://www.xdnf.cn/news/15121.html

相关文章:

  • c语言中的数组IV
  • 奇哥面试:RabbitMQ工作模式深度剖析与Spring整合MQ
  • Datawhale AI夏令营:基于带货视频评论的用户洞察挑战赛上分全攻略
  • 数据库系统的基础知识(三)
  • 【时时三省】(C语言基础)通过指针引用数组元素
  • Redis 分片集群
  • C++中的智能指针(1):unique_ptr
  • 《汇编语言:基于X86处理器》第7章 整数运算(2)
  • 星云穿越与超光速飞行特效的前端实现原理与实践
  • 上位机知识篇---Linux软硬链接
  • 用 ELK+Filebeat 提高50%问题排查效率,这套方案实测有效!
  • cnpm exec v.s. npx
  • Shader面试题100道之(81-100)
  • python之set详谈
  • LeetCode经典题解:128、最长连续序列
  • TCP服务器与客户端三种方法实现
  • Linux权限的概念
  • SM712.TCT Semtech TVS二极管——电子设备的终极电路守护
  • DNS(Domain Name System,域名系统)
  • 计算机毕业设计ssm晋中大学城校园论坛 SSM大学城学生社区互动管理平台 JavaWeb高校校园信息交流与服务系统
  • java底层的native和沙箱安全机制
  • 系统思考:多元胜过能力
  • 鸿蒙 Secure Boot 全流程解析:从 BootROM 到内核签名验证的实战指南
  • 2025 年值得尝试的 6 大内容管理系统 (CMS)
  • 【实用IP查询工具】IP数据云-IP地址查询离线库使用方案
  • 【操作系统】Linux 中的 exec 命令
  • RK3566/RK3568 Android11 CAN开发(内核配置+测试验证+安卓app开发)
  • STM32F103之存储/启动流程
  • HarmonyOS基础概念
  • 【TCP/IP】17. 移动 IP