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

算法随笔_17: 回文数

上一篇: 算法随笔_16: 找出第k小的数对距离-CSDN博客

题目描述如下:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

  • 例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121
输出:true

算法思路:

我们这样考虑这个问题。我们把这个数从中间对折一下,如果这个数是一个回文数,那么对折后,每个位置上的数字是相同的的。如果不是一个回文数,那么对折以后,某个位置上肯定有不一样的数字。因此我们只需要把这个整数的半个区间的数字排列倒序一下,看看是否和另半个区间相同即可。

那如何对半个区间倒序呢?我们可以按照如下算法去做:

1. 把x值赋予x_new。设倒序的数字为x_rev,初始值为0。

2. 对x_new整数取余,即,x_new%10,这样我们会取到最末尾的数字。然后我们把x_rev*10,并且累加这个末尾数,最后存储到x_rev。

3.  x_new=x_new/10,这样我们就消掉了x的最后一个数。然后重复步骤2,3,最后就得到了一个倒序数字x_rev。

还有一个问题,如何判断已经反转的位数已经进行了一半呢?

我们发现我们不断的对原来的数字除以10,对倒序的数字乘以10,那我们就可以判断,只要原来的数字小于等于倒序的数字,就说明反转的位数已经进行了一半。

http://www.lryc.cn/news/525108.html

相关文章:

  • 计算机的错误计算(二百一十九)
  • React进阶之高阶组件HOC、react hooks、自定义hooks
  • 【Pytest】基础到高级功能的理解使用
  • RHCE实验详解
  • 备赛蓝桥杯之第十五届职业院校组省赛第二题:分享点滴
  • MyBatis 注解开发详解
  • Kivy App开发之UX控件VideoPlayer视频播放
  • 简单排序算法
  • C语言初阶牛客网刷题——JZ17 打印从1到最大的n位数【难度:入门】
  • 基于springboot+vue的校园二手物品交易系统的设计与实现
  • 开发环境搭建-2:配置 python 运行环境(使用 uv 管理 python 项目)
  • STM32 ST7735 128*160
  • 【面试总结】FFN(前馈神经网络)在Transformer模型中先升维再降维的原因
  • VB读写ini配置文件将运行文件放入任务计划程序设置为开机自启动
  • Java基础 (一)
  • 数据结构——实验六·散列表
  • springboot网上书城
  • 如何在 Pytest 中使用命令行界面和标记运行测试
  • 不建模,无代码,如何构建一个3D虚拟展厅?
  • github汉化
  • Unity Line Renderer Component入门
  • 数据库的三级模式结构与两级映像
  • TCP断开通信前的四次挥手(为啥不是三次?)
  • win32汇编环境,按字节、双字等复制字符的操作
  • .net 项目引用与 .NET Framework 项目引用之间的区别和相同
  • RabbitMQ--延迟队列
  • 使用pyboard、micropython和tja1050进行can通信
  • JS学习之JavaScript模块化规范进化论
  • 亚博microros小车-原生ubuntu支持系列:7-脸部检测
  • 第二届国赛铁三wp