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

【每日刷题】回文数

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.dtcms.com/a/274104.html

相关文章:

  • 【数据结构】8. 二叉树
  • 【LeetCode 热题 100】24. 两两交换链表中的节点——(解法一)迭代+哨兵
  • leetcode106深度解析:从中序与后序遍历序列构造二叉树
  • leetcode:518. 零钱兑换 II[完全背包]
  • 【网络】Linux 内核优化实战 - net.ipv4.tcp_congestion_control
  • (LeetCode 每日一题) 3169. 无需开会的工作日 ( 排序+贪心 )
  • 力扣_二叉搜索树_python版本
  • 1965–2022年中国大陆高分辨率分部门用水数据集,包含:灌溉用水、工业制造用水、生活用水和火电冷却
  • 【unitrix】 4.21 类型级二进制数基本结构体(types.rs)
  • 李沐动手学深度学习Pytorch-v2笔记【07自动求导代码实现】
  • 进程管理中的队列调度与内存交换机制
  • Jenkins 系统管理与配置
  • 排序算法与前端交互优化
  • 持续集成 简介环境搭建
  • 14 TryHackMe 靶场 Wireshark: The Basics
  • CIU32L051系列 DMA串口无阻塞性收发的实现
  • CentOS 安装 JDK+ NGINX+ Tomcat + Redis + MySQL搭建项目环境
  • Redis5.0.5 漏洞
  • redis的一些疑问
  • windows下安装 redis
  • Redis全栈技术导航:从基础架构到实战案例的完整指南
  • 创客匠人:AI 时代创始人 IP 打造与知识变现的范式迁移
  • 什么是IP关联?跨境卖家如何有效避免IP关联?
  • LeetCode--43.字符串相乘
  • 软件过程模型核心特征与开发流程对照表
  • Android Glide使用与底层机制详解
  • 上位机知识篇---安装包架构
  • imx6ull-系统移植篇2—— U-Boot 命令使用(上)
  • Java 中线程通信方式笔记
  • tailwindCSS === 使用插件自动类名排序