【回文数】算法优化笔记
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数(不将整数转为字符串来解决)。
示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。
你能不将整数转为字符串来解决这个问题吗?
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-number
初步分析
- 可以暴力法,强行转化成字符串反转判断是否相同。
- (上次的整数反转算法)可以利用取余来每位反向添加入另一个整数中。
- (也是上次的整数反转算法)不过这次可以反转一半和另一半比较相同则为回文数。
本章总结
【小总结】
1.【尽量不要用暴力法】
2.【利用数学运算eg:%,/】
【详细总结】
原x | a | 变化后x | result |
---|---|---|---|
1234 | 4 | 123 | 4 |
123 | 3 | 12 | 43 |
12 | 2 | 1 | 432 |
1 | 1 | 1 | 4321 |
详细代码
public class Solution {public bool IsPalindrome(int x) {if(x<0) return false;if(x<10) return true;if(x%10==0) return false;int before = x;int result =0;while(x!=0){int a=x%10;x=x/10;result = result*10+a;}return result==before;}
}
另一个理解比较简单的版本(反转一半判断)
public class Solution {public bool IsPalindrome(int x) {if(x < 0 || (x % 10 == 0 && x != 0)) {return false;}int result = 0;while(x > result ) {result = result * 10 + x % 10;x /= 10;}return x == result || x == result /10;}
}位运算符:(a & b)按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0输出结果 12 ,二进制解释: 0000 1100(a | b)按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。输出结果 61 ,二进制解释: 0011 1101(a ^ b)按位异或运算符:当两对应的二进位相异时,结果为1输出结果 49 ,二进制解释: 0011 0001(~a )按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。a << 2左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。输出结果 240 ,二进制解释: 1111 0000a >> 2右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数输出结果 15 ,二进制解释: 0000 1111赋值运算符:*= 乘法赋值运算符 c *= a 等效于 c = c * a/= 除法赋值运算符 c /= a 等效于 c = c / a%= 取模赋值运算符 c %= a 等效于 c = c % a**= 幂赋值运算符 c **= a 等效于 c = c ** a//= 取整除赋值运算符 c //= a 等效于 c = c // a> 作者:boywithacoin_cn
> 链接:https://leetcode-cn.com/problems/reverse-integer/solution/pythondan-chu-he-tui-ru-shu-zi-yi-chu-qian-jin-xin/
> 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【回文数】算法优化笔记相关推荐
- python判断回文数_Python实现判断一个整数是否为回文数算法示例
本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...
- python判断回文_Python实现判断一个整数是否为回文数算法示例
本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...
- c语言多组数据判断回文字符串,详解判断回文字符串跟回文数算法的C语言代码...
详解判断回文字符串和回文数算法的C语言代码! 一.判断一个字符串是否为回文字符串 #include #include #include //包含strlen #define YES 1 #define ...
- java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]9. 回文数(简单) 宫水三叶发布于 今天 15:30 题目描述 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从 ...
- java实现回文数算法
[问题描述]所谓回文数是指具有如下性质的整数:一个整数,当它的各位数字逆序排列,形成的整数与原整数相同,这样的数称为回文数.例如,素数11,373,其各位数字对换位置后仍然为11,373,因此这两个整 ...
- python递归判断回文数_Python实现判断回文数算法
回文数的定义:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例1: 输入:121 输出:True 示例2: 输入:-121 输出:False 解释: 从左向右读, 为 -121 . ...
- c语言程序判断一个字符串是否是回文数,详解判断回文字符串和回文数算法的C语言代码!...
一.判断一个字符串是否为回文字符串 #include #include #include //包含strlen #define YES 1 #define NO 0 #define uchar un ...
- Python中判断回文数
判定一个5位数或者4位整数否为回文数 顺读与逆读都一样的数 例如:1,2,3,4,5,6,7,8,9,11,22,33,101,121,222 算法思路1:将该数先摸10后除10的方法一一拆除,当第一 ...
- 10000内的回文数c语言,回文数
"回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这样的特征,成为回文数(pa ...
- python判断回文数_Python练习题---判断回文数
设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...
最新文章
- 编译安装mysql带boost_编译安装mysql时报缺少boost1.59后,编译安装boost1.59
- dxf geojson 转换_将Geopandas中geojson文件的linestring转换为polygon
- Cambridge partner
- 性能测试(04)-表达式和业务关联-JDBC关联
- stm32 输入捕获 测量脉宽
- 使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
- 1024乘风破浪季,3本好书助你平步青云
- 掌握Spark机器学习库-06-基础统计部分
- 【Java后台开发规范】--- Null值处理
- 简单的通过request判断客户端设备类型
- C#获取字符串的拼音和首字母
- 布洛芬成功史:研发10年因一次宿醉迎来转机,发明人3年前已去世
- 24点游戏(随机产生四个不同的1到13的随机数据外加加减乘除构成表达式,输出结果等于24的表达式)
- 利用Instrumentation单元测试模块控制安卓手机进行各项操作(微信)
- 什么是QA?QA是什么意思?
- html mailto 乱码,outlook会议乱码
- HackBrowserData密码抓取
- java 自动发货_基础知识总结篇(一)
- php:Notice: Use of undefined constant id - assumed 'xxxx' 解决办法
- 在 Android 模拟器上设置 Sencha Touch
热门文章
- 用状态空间法(卡尔曼滤波)解决深度高斯过程问题
- 60万元奖金 “人脸攻防战”,怎么打?丨独家公开课实录(附baseline)
- 管中窥“视频”,“理解”一斑 —— 视频理解概览
- AliExpress:在检索式问答系统中应用迁移学习 | PaperDaily #24
- 深到骨子里的自律,是每周坚持刷几篇最新论文 | PaperDaily #10
- poj3070 Fibonacci 矩阵快速幂
- 随机迷宫 c语言思路,[原创]递归随机迷宫生成算法详解
- python批量读取文本行_用Python读取几十万行文本数据
- RocketMQ 错误:The broker does not support consumer to filter message by SQL92
- php异常处理示例,php异常处理示例