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

Leetcode 回文数

在这里插入图片描述

下面是解决这个回文数问题的一个Java解法:

代码解释

  1. 特殊情况处理
    • 如果数字是负数,直接返回false,因为负数不可能是回文数。
    • 如果数字以0结尾,但不是0本身,也不可能是回文数(例如10不是回文数)。
  2. 核心逻辑
    • 利用反转数字的一半来判断是否是回文数。
    • 每次取x的最后一位数字,将其添加到反转的数字revertedNumber中。
    • 同时将x缩小为去掉最后一位后的数字。
    • 当原始数字x小于或等于revertedNumber时,说明已经处理了一半或更多。
  3. 回文判断
    • 如果数字的长度是偶数,x应该等于revertedNumber
    • 如果数字的长度是奇数,x应该等于revertedNumber / 10(因为反转数字会多一位)。

示例

  • 输入:x = 121
    输出:true

  • 输入:x = -121
    输出:false

  • 输入:x = 10
    输出:false

这个解法的时间复杂度是O(log10(n)),空间复杂度是O(1)。

class Solution {
    public boolean isPalindrome(int x) {
        //首先处理特殊情况,负数和以0结尾的非0元素必然不是回文数
        if(x < 0 || (x % 10 == 0 && x != 0)) return false;

        //然后将该数字反转
        int revertedNum = 0;
        while(x > revertedNum) {
            revertedNum = revertedNum * 10 + x % 10;
            x /= 10;
        }
        return (x == revertedNum || x == revertedNum / 10);
    }
}

http://www.kler.cn/a/400959.html

相关文章:

  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04
  • 远程jupyter lab的配置
  • 模电数电,融会贯通
  • ChromeDriver驱动下载地址更新(保持最新最全)
  • 三维测量与建模笔记 - 点特征提取 - 4.3 Harris特征点
  • 剧本杀门店预约小程序,解锁沉浸式推理体验
  • 游戏引擎学习第17天
  • 使用合适的Prompt充分利用ChatGPT的能力
  • 如何用WordPress和Shopify提升SEO表现?
  • labview中连接sql server数据库查询语句
  • 一次需升级系统的wxpython安装(macOS M1)
  • Macmini中普通鼠标与TrackPad联动问题解决
  • openGauss 6.0.0单机部署(企业版)
  • 单机顶集群的大数据技术来了
  • ks 小程序sig3
  • vue3绘制画图工具
  • EUV光刻胶行业全面且深入的分析
  • 集群聊天服务器(7)数据模块
  • sql server index FORCESEEK
  • 微搭低代码入门05循环
  • 【Redis_Day4】内部编码和单线程模型
  • 汽车资讯新纪元:Spring Boot技术引领
  • 深入解析大带宽服务器:性能优势与选择指南
  • 力扣.259 较小的三数之和
  • Redis 高并发缓存架构实战与性能优化
  • 从零开始仿抖音做一个APP(首页顶部T标签添加页面关联)