leetcode-第9题-回文数

LeetCode 第9题:回文数 通过这个题目,我们不仅学习了如何判断一个数是否是回文数,还探讨了两种不同的解题方法:直接转换为字符串法和反转一半数字法。通过这些方法,我们可以在不同情况下灵活应对,保证高效、正确地解决问题。思路是这样的: 1. 特殊情况处理:负数一定不是回文数;以0结尾的数字(除非是0本身)也不可能是回文数。2. 反转一半的数字:将数字的后半部分反转,然后与前半部分进行比较。 阅读详情

博主并没有什么算法基础,所以写的不好,勿喷,抛砖引玉,欢迎交流,感谢。

//判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 
// 示例 1:
// 输入: 121
//输出: true
// 示例 2:
// 输入: -121
//输出: false
//解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
// 示例 3:
// 输入: 10
//输出: false
//解释: 从右向左读, 为 01 。因此它不是一个回文数。
// 进阶:
// 你能不将整数转为字符串来解决这个问题吗?
// Related Topics 数学 
// 👍 1225 👎 0


package com.zqh.leetcode.editor.cn;

//Java:回文数
public class P9PalindromeNumber {
    public static void main(String[] args) {
        Solution solution = new P9PalindromeNumber().new Solution();
        System.out.println(solution.isPalindrome(2));
        System.out.println(solution.isPalindrome(22));
        System.out.println(solution.isPalindrome(222));
        System.out.println(solution.isPalindrome(2222));
        System.out.println(solution.isPalindrome(2));
        System.out.println(solution.isPalindrome(21));
        System.out.println(solution.isPalindrome(212));
        System.out.println(solution.isPalindrome(123321));
        System.out.println(solution.isPalindrome(12321));
        System.out.println(solution.isPalindrome(123456));
        System.out.println(solution.isPalindrome(1000440001));
        // TO TEST
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        int[] sizeTable = {9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE};

        public boolean isPalindrome(int x) {
            if (x < 0) {
                return false;
            }
            int xLength;
            for (int i = 0; ; i++) {
                if (x <= sizeTable[i]) {
                    xLength = i + 1;
                    break;
                }
            }
            int whileCount = xLength / 2;
            int centerCount = whileCount / 2;
            int center = xLength % 2 == 0 ? 1 : 2;
            int j = 0;
            while (--whileCount >= 0) {
                // 从头部和尾部2边靠拢开始判断
                if (x / (int) Math.pow(10, j) % 10 != x / (int) Math.pow(10, xLength - j - 1) % 10) {
                    return false;
                }
                // 从中间发散开始判断
                if (x / (int) Math.pow(10, whileCount) % 10 != x / (int) Math.pow(10, whileCount + j + center++) % 10) {
                    return false;
                }
                // 判断上面2种执行是否开始交叉
                if (whileCount > centerCount + 1) {
                    return true;
                }
                ++j;
            }
            return true;
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}

 

毕业论文管理系统的设计与实现 毕业论文工作是高等学校本科培养阶段的一个重要环节。目前论文管理工作存在着许多问题,例如人工管理极为不便;学生对论文所要撰写的内容并不十分了解,与指导老师的沟通非常不便;老师的指导监督也很难完全到位;手工评审的效率低等。而现有的一些毕业论文信息管理或答辩评审系统只是实现了部分网上交流和评审管理的功能,在答辩评审的自测和项目指标权重等方面都存在着一定的不足。因此,本文设计的毕业论文管理系统采用B/S模式开发。其中,Browser层使用JSP技术开发; 阅读详情

相关推荐

《算法第四版》学习心得一——怎么学算法

 一、算法的两个核心 算法的核心内容实际上有两个: 算法的概念和思路。 算法的编程实现。 两者相互关联影响,缺一不可。 不理解基本概念和思路,就算把实现代码背下来,也无济于事,因为脑袋里依然是一片模糊。理解了概念和思路,不去用代码实现,脑袋里有的只是概念,无法根据真实需求实现解决方案。 二、学算法需要什么基础 首先,必须要有一定的编程语言基础,要理解语言中最基本的概念:数据类型,类,成...

illikang的博客 3909

力扣(Leetcode)第9题:回文数(C语言版本)

给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。本题主要是判断一个数是否为回文数(相当于正着读和反着读,数值都是一样的)回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。- 1 -----可见在定义整型数时需要。例如,121 是回文,而 123 不是。输入:x = -121。输入:x = 121。

qq_39855356的博客 614

【软件介绍】GWAS meta分析软件:METAL

Meta-analysis是对多个GWAS分析结果进行综合评价。METAL是GWAS meta分析最常用的工具之一,本文简单介绍METAL软件基本用法。

hucy_Bioinfo 1万+

力扣LeetCode 简单题9.回文数 。取余数法

9. 回文数 难度简单1862 给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121是回文,而123不是。 示例 1: 输入:x = 121 输出:true 示例2: 输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入:x = 10 输出:false 解释...

m0_46630679的博客 368

Halcon阈值算子 -- 局部阈值之dyn_threshold

Halcon阈值算子 – dyn_threshold HALCON有很多阈值算子,接下来将一一介绍。本文先介绍dyn_threshold。 以下介绍主要参考HALCON帮助文档,并加上自己的体会。如有纰漏,欢迎留言指出 理论介绍 dyn_threshold算子的函数签名如下: dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 输入参数有: OrigImage:待处理图像 ThresholdIm

m0_47015717的博客 5382

Docker网络教程(四)macvlan 网络教程

在这种网络下,Docker 宿主机在它的IP之上,允许接受多个 MAC 地址的请求,然后再将这些请求路由至对应的容器里。流通,Docker 会用它的 MAC 地址,把流量路由进你的容器里。对于网络上的网络设备来说,你的容器似乎是物理上连接到网络上的。),Docker使用其MAC地址将流量路由到你的容器。对于网络上的网络设备来说,你的容器似乎是物理上连接到网络上的。你需要 3.9 或者更高版本的 Linux 内核,4.0 以及以上的版本是更好的。如果你的设备叫别的名字,用对应的名字代替。

weixin_42445065的博客 4132

LeetCode第9题_回文数

这道题的关键点:理解回文数的特性优化空间复杂度处理边界情况两种解法比较:字符串法简单直观数字反转法更优(符合进阶要求)优化思路:只需反转一半数字及早处理特殊情况避免整数溢出。

qq_40263592的博客 1029

Agentic AI应用架构师如何提升AI应用的灵活性

可扩展性(Scalability):快速添加新功能或扩展任务范围(如Agent从“客服”扩展到“供应链管理”);可修改性(Modifiability):调整Agent的决策逻辑或动作策略,无需重构整个系统;鲁棒性(Robustness):在环境异常或数据噪声下保持性能稳定;自适应(Self-Adaptation):自主学习新场景,无需人工干预。状态空间(S):Agent能感知的所有内部/外部状态(如用户需求、环境数据);动作空间(A):Agent能执行的所有动作(如调用工具、发送消息);

项目管理的博客 577

力扣简单题系列:回文数(LeetCode 9)

这道题通过反转整数并比较的方式,可以轻松判断一个整数是否是回文数。

weixin_53910667的博客 453

如何使用 Claude Code 搜索 SAP note

当然,Claude Code 自己仍然要有一种合法可用的模型访问方式,例如 Claude 订阅、Anthropic API 或公司配置的模型提供方式,这和 Browser Extension 是两个问题。因为 Claude Code 已经是完整的 MCP Host,而 Microsoft Playwright MCP 又已经明确支持现有 Chrome Session,两者拼起来在技术架构上完全成立。Microsoft Playwright MCP 默认可以创建持久化浏览器 Profile。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 62

QT实现警报应用程序

QT实现警报应用程序

希望我的博客,能帮上你解决学习中工作中所遇到的问题 2038

LeetCode第9题:回文数

LeetCode第9题:回文数 题目: 解法一: class Solution { public boolean isPalindrome(int x) { int ans=0,y=x; if(x<0){ return false; } if(x>=0 && x<1...

new_whiter的博客 315

使用node-red网关读取modbus设备点表,并上传到市政低碳平台来统计数据

最近做了一个物联网项目,具体是这样的,利用node-red网关盒子,来采集Modbus设备的点表,然后将数据转换,封装,最终上传到市政的低碳平台。上一步封装了点表的数据,调用低碳平台还需要账号密码,建筑id,这些都是固定信息,所以我们单独提出来。上一步获取到了原始的点表数据,下一步就是将这些点表数据与在低碳平台创建的采集的对应起来,并且设置好分类。读取modbus的节点,会有两个输出,我是使用的第一个输出。msg.meters 是一个数组,里面的每一个元素都是一个点表,比如厨房用水,园区照明,

知无涯 946

力扣第9题-回文数

从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。从右向左读, 为 01。因此它不是一个回文数。是一个回文整数,返回。

qq_42268998的博客 249

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode第9题---回文数

LeetCode第7题---回文数 题目描述: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文...

Jonh_的博客 270

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

力扣LeetCode算法题第9题-回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

逼哥很疯狂的博客 695

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

力扣热题100实战 | 第9期:回文数——从字符串到整数的双重视角

本文是力扣热题100实战系列的第九篇,深度解析**回文数**这道经典入门题。作为LeetCode第9题,它虽然被标记为"简单",却是面试中高频出现的基础题,也是检验编程基本功的试金石。题目要求判断一个整数是否为回文数(正反读相同)。本文从最简单的字符串反转法讲起,引出进阶的整数反转法,并深入探讨整数溢出、边界条件等关键细节,最终给出反转一半的极致优化解法。通过图解和详细代码注释,帮助读者理解两种解法的优劣、如何避免整数反转中的溢出问题,以及如何优化到只反转一半数字的极致解法。无论你是正在备战2026春招的J

LinuxSRE、k8s、运维、DBA、大数据 673

LeetCode第9题:回文数解析

本题考察的是对整数操作的基本能力以及对边界条件的处理。通过反转数字并比较的方法,我们可以简洁有效地解决这个问题。负数不是回文数;使用long int避免溢出;理解模运算和整除操作在数字反转中的作用。

xiao_xin__yu的博客 445

leetcode第9题:回文数

这道算法题要求判断一个整数是否是回文数。关键解法是:首先排除负数和末尾为0的非零数这两种非回文情况,然后通过反转数字的后半部分并与前半部分比较来判断。具体实现时,只需反转一半数字(当原始数字小于等于反转部分时停止),最后比较两半数字是否相同(考虑奇偶位数差异)。这种方法避免了字符串转换,时间复杂度O(log n),空间复杂度O(1)。

2403_85911068的博客 722

Leetcode(力扣)刷题第9题——回文数(一行代码搞定)

给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。从右向左读, 为 01。因此它不是一个回文数。例如,121 是回文,而 123 不是。

qq_54932411的博客 7万+

[ LeetCode ] 题刷刷(Python)-第9题:回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

zhou_ge1的博客 851

力扣(leetcode)第9题回文数(Python)

最后,我写了一篇MySQL教程,里面详细的介绍了MySQL的基本概念以及操作指令等内容,欢迎阅读!给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。例如,121 是回文,而 123 不是。输入:x = -121。输入:x = 121。

qq_58737789的博客 535

【刷题之路】LeetCode 9.回文数

思路和方法1的改进版的思路差不多,只不过我们这次是直接取出x两端的数字进行比较(即取出最高位和最低位)。时间复杂度:O(log10(N)),N为数字x的值,每取一个数字,我们都要对x进行除10操作,所以时间复杂度为O(log10(N))。时间复杂度:O(n),n为数字的位数或字符串的长度,转化时的复杂度为log10n,逆序时的复杂度为n/2故复杂度为O(n)。时间复杂度:O(n),n为数字的位数或字符串的长度,转化时的复杂度为log10n,比较时的复杂度为n/2故复杂度为O(n)。因此它不是一个回文数。

kk702392702的博客 557

LeetCode第9题—回文数—【题解+思路】

LeetCode第9题——回文数,从数学的角度求解!!!

但行好事,莫问前程 420

【LeetCode 第 9 题】回文数的三种解法,从入门到进阶

面试快速答题:优先字符串反转法,保证解题速度;追求最优解:选择整数反转法,这是面试官更青睐的解法,能体现算法功底;理解回文本质:可以尝试逐位对比法,加深对回文数定义的理解。同时,这道题也给我们一个启示:基础算法题往往有多种解法,从入门到进阶的过程,就是不断优化时间和空间复杂度的过程,也是提升算法思维的关键。

Dxy13467900的博客 1150

leetcode (C语言)-第9题--回文数

题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 分析: 如下代码就是拿到题目后我的最初想法,就是把整数通过 除10,求模10得到每一个数字存放到数组中,然后遍历一遍数组进行判断。本质上这种想法是 数据结构帮助解题,即将整数化为数组然后进行判断,从而降低难度。这就是常说的,程序 = 数据结构 + 算法 官方给出了一种很简洁和很巧妙的算法。大家可...

SZYouzhi的博客 338
上一篇: leetcode-第69题-x 的平方根
下一篇: leetcode-第118题-杨辉三角
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值