leetcode-009-回文数

题目及测试

package pid009;
/* 给你一个整数 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
 

进阶:你能不将整数转为字符串来解决这个问题吗?

*/
public class main {
	
	public static void main(String[] args) {
		int[] testTable = {121,10,1340,-2147483648};
		for (int i=0;i<testTable.length;i++) {
			test(testTable[i]);
		}
	}
		 
	private static void test(int ito) {
		Solution solution = new Solution();
		boolean rtn;
		long begin = System.currentTimeMillis();
		    System.out.print(ito+" ");
		    System.out.println();
		rtn = solution.isPalindrome(ito);//执行程序
		long end = System.currentTimeMillis();		
		    System.out.print(rtn+" ");
		System.out.println();
		System.out.println("耗时:" + (end - begin) + "ms");
		System.out.println("-------------------");
	}

}

没做出来,不知道为啥错了。。。

解法1(别人的)

通过取整和取余操作获取整数中对应的数字进行比较。

举个例子:1221 这个数字。

通过计算 1221 / 1000, 得首位1
通过计算 1221 % 10, 可得末位 1
进行比较
再将 22 取出来继续比较

class Solution {
    public boolean isPalindrome(int x) {
        //边界判断
        if (x < 0) return false;
        int div = 1;
        //
        while (x / div >= 10) div *= 10;
        while (x > 0) {
            int left = x / div;
            int right = x % 10;
            if (left != right) return false;
            x = (x % div) / 10;
            div /= 100;
        }
        return true;
    }
}

解法2(别人的)

直观上来看待回文数的话,就感觉像是将数字进行对折后看能否一一对应。

所以这个解法的操作就是 取出后半段数字进行翻转。

这里需要注意的一个点就是由于回文数的位数可奇可偶,所以当它的长度是偶数时,它对折过来应该是相等的;当它的长度是奇数时,那么它对折过来后,有一个的长度需要去掉一位数(除以 10 并取整)。

具体做法如下:

每次进行取余操作 ( %10),取出最低的数字:y = x % 10

将最低的数字加到取出数的末尾:revertNum = revertNum * 10 + y

每取一个最低位数字,x 都要自除以 10

判断 x 是不是小于 revertNum ,当它小于的时候,说明数字已经对半或者过半了

最后,判断奇偶数情况:如果是偶数的话,revertNum 和 x 相等;如果是奇数的话,最中间的数字就在revertNum 的最低位上,将它除以 10 以后应该和 x 相等。

class Solution {
    public boolean isPalindrome(int x) {
        //思考:这里大家可以思考一下,为什么末尾为 0 就可以直接返回 false
        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;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/12767.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能发展到GPT4经历了什么,从专家系统到机器学习再到深度学习,从大模型到现在的GPT4

大家好&#xff0c;我是微学AI&#xff0c;今天给大家讲一下人工智能的发展&#xff0c;从专家系统到机器学习再到深度学习&#xff0c;从大模型到现在的GPT4&#xff0c;讲这个的目的是让每个人都懂得人工智能&#xff0c;每个人都懂得人工智能的发展&#xff0c;未来人工智能…

4.13(LoadLibrary)

接着之前预习的知识&#xff0c;我观察的自己编译出来的bin LoadLibraryExA LoadLibraryExA函数进去&#xff0c;现时用RtInitAnsiString函数初始化了ANSI的计数字符串&#xff0c;底层是调用了LoadLibraryExW函数&#xff0c;在LoadLibrarExW函数里做了unicode的计数字符串的…

python入门(五) vscode配置Anaconda 环境,代码自动提示

文章目录 1.conda的下载地址:1.配置conda的环境变量安装conda配置path 2.vcode配置python插件3.配置conda1) Select Interpreter2) 选择conda环境 4.测试 vscode配置Anaconda 环境&#xff0c;代码自动提示. 本人工作中&#xff0c;用到了ai相关技术&#xff0c;但是java出身&a…

七项新发布,亚马逊云科技Amazon S3持续进化

17年前的3月14日&#xff0c;亚马逊云科技推出了一项“非常简单的”对象存储服务&#xff08;Amazon Simple Storage Service&#xff09;。该服务允许开发人员创建、列出和删除私有存储空间&#xff08;称为存储桶&#xff09;、上传和下载文件以及管理其访问权限。当时&#…

北京筑龙:采购供应链平台-构建能源企业数智供应链的必经之路

4月13至14日&#xff0c;“中国国际管道会议&#xff08;CIPC&#xff09;暨技术装备与成果展”高峰论坛在北京举行。来自国内外管道领域的院士、知名专家、学者齐聚一堂&#xff0c;共同探讨新时代背景下管道技术领域的发展方向。作为采购供应链数字化产品及服务提供商&#x…

每日学术速递4.13

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Slide-Transformer: Hierarchical Vision Transformer with Local Self-Attention(CVPR 2023) 标题&#xff1a;Slide-Transformer&#xff1a;具有局部自注意力的分层视觉变换器 …

Camera | 8.让rk3568支持前后置摄像头

一、目标 本文主要目标是&#xff0c;支持前置摄像头0v5648、后置摄像头ov13850&#xff0c;以及移植过程遇到的一些小问题的解决。 1. 摄像头连接图 参考上图&#xff0c;摄像头详细信息如下&#xff1a; 2个摄像头均连接在I2C通道42个摄像头共用同一个MIPI数据通道2个摄像…

LeetCode:454. 四数相加 II —— 哈希表为什么叫哈希表~

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 hash是什么&#xff0c;哈希表为什么叫哈希表&#xff1f; 一、&#x1f331;454. 四数…

Java基础(八)异常处理

1. 异常概述 1.1 什么是生活的异常 男主角小明每天开车上班&#xff0c;正常车程1小时。但是&#xff0c;不出意外的话&#xff0c;可能会出现意外。 出现意外&#xff0c;即为异常情况。我们会做相应的处理。如果不处理&#xff0c;到不了公司。处理完了&#xff0c;就可以…

一文搞懂Plant Simulation中的Rotation设置

在处理3D动画或者展示时,常常需要在Plant Simulation调整数模的姿态,静态设置或动态设置Rotation是一个很重要的手段。 编辑3D属性,在Transformation选项卡中,我们可以看到Rotation的设置参数,如上图所示,只有一个角度和3个轴参数。如果对计算机图形学不了解的同学,估计…

MySQL优化——Explain分析执行计划详解

文章目录 前言一. 查看SQL执行频率二. 定位低效率执行SQL三. explain分析执行计划3.1 id3.2 select_type3.3 table3.4 type3.5 key3.6 rows3.7 extra 四. show profile分析SQL 前言 在应用的的开发过程中&#xff0c;由于初期数据量小&#xff0c;开发人员写 SQL 语句时更重视…

【技术分享】接口自动化测试中,如何做断言验证?

在服务端自动化测试过程中&#xff0c;发起请求之后还需要对响应值进行验证。验证响应信息符合预期值之后&#xff0c;这一条接口自动化测试用例才算完整的通过。所以这一章节&#xff0c;将会讲解在接口自动化测试中&#xff0c;如何对服务端返回的响应内容做断言验证。 实战…

Linux命令·traceroute

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点&#xff08;source&#xff09;到达某一同样的目的地(destination)走的路径可能会不一样&#xff0c;但基本上来说大部分时候所走的路由是相同的。linux系统…

【微服务笔记13】微服务组件之Config配置中心基础环境搭建

这篇文章&#xff0c;主要介绍微服务组件之Config配置中心基础环境搭建。 目录 一、Config配置中心 1.1、什么是配置中心 1.2、Config配置中心特点 二、搭建Config配置中心 2.1、配置Git仓库 2.2、创建ConfigServer服务端 &#xff08;1&#xff09;引入依赖 &#xff…

【天梯赛—不想坑队友系列】L1-002 打印沙漏(java)

题目链接 PTA | 程序设计类实验辅助教学平台 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”&#xff0c;要求按下列格式打印 ************ *****所谓“沙漏形状”&#xff0c;是指每行输出奇数个符号&#xff1b;各行符号中心对齐&#xff1b;相邻两行符…

企业在实施采购管理时需要注意哪些问题?

采购管理是指企业为了获得所需的物资和服务等&#xff0c;通过筛选供应商、谈判合同、执行采购计划等一系列过程来实现目标的管理活动。在实施过程中&#xff0c;采购管理需要注意以下几个问题&#xff1a; 1、采购策略的选择 采购策略的选择是采购管理中非常关键的环节。不同…

NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022

然后我们来看一下如何操作模板 首先我们准备好了一个模板,叫做CsvToJSON这样一个模板文件了 然后我们再来看左下角有个上传模板 可以选择这个模板上传上来,然后,就可以在右侧找到,菜单,找到template,点击,来查看模板了 然后添加组,就是顶部的那个两个圆圈的组件拖过来以后用来…

Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载

文章目录 一、业务背景二、实现思路二、准备工作1.准备data模板.xlsx2.引入poi相关依赖&#xff0c;用于操作excel3.针对WorkBookZIP压缩输入/输出流&#xff0c;相关方法知识点要有所了解 三、完整的项目代码四、可能遇到的问题错误场景1&#xff1a;java.io.IOException: Str…

Echarts数据可视化(下)

四、数据可视化项目实战 后台搭建 结合Vue开发图表组件 WebSocket实现数据推送 主题切换/页面合并/全屏切换 4.1 Koa2 学习介绍&#xff1a;koa2 - 简书 官网&#xff1a;Koa (koajs) -- 基于 Node.js 平台的下一代 web 开发框架 | Koajs 中文文档 4.1.1 Koa2 的介绍 基…

百度智能云对象存储BOS批量下载文件方法

百度智能云对象存储BOS支持批量打包下载吗&#xff1f;目前对象存储BOS浏览器端不支持批量下载&#xff0c;可以使用对象存储BOS桌面或BOSCMD批量下载&#xff0c;也可以使用API/SDK调用接口循环下载。新手站长网来详细说下百度云对象存储BOS批量下载的方法&#xff1a; 目录 …