Leetcode-9-回文数(简单)
题目:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
思路及代码:
1.使用字符串
第一时间想到的是使用字符串做这道题,因为简单而且容易想到
即,直接将整数转为字符串,求取字符串长度,头尾比较。
这个题目有一个很容易想到的点,首先可以排除所有的负数,嗯,这是显然的。
2.不使用字符串
不使用字符串的话,鉴于回文数的特殊性质,会想到整数翻转,因而很容易转化为问题做法
a.将非负整数反转,如果反转后的相同,则判定为回文数,否则不是。
这里的难点在于:反转的溢出处理
b.全部反转,实际上是对资源的一种浪费,因为如果它是回文数,那么该整数的前半段应该等于后半段的数值
那么问题来了,如何判断我们已经处理到了数字的一半位置了呢?
很多人又会想到使用字符串的长度。但是注意,不能借助字符串!!!
那么原数a,与不断进行a%10,a/10…
当由余数组成的反转数大于或者等于原数剩余的数值的时候,即达到了一半的位置
还有一个可以简单排除的就是,如果末尾为0的话,反转后首位为0,显然这是不可能的
但0除外
/*
2019-08-27
1.使用字符串
第一时间想到的是使用字符串做这道题,因为简单而且容易想到
即,直接将整数转为字符串,求取字符串长度,头尾比较。
这个题目有一个很容易想到的点,首先可以排除所有的负数,嗯,这是显然的。
2.不使用字符串
不使用字符串的话,鉴于回文数的特殊性质,会想到整数翻转,因而很容易转化为问题做法
a.将非负整数反转,如果反转后的相同,则判定为回文数,否则不是。
这里的难点在于:反转的溢出处理
b.全部反转,实际上是对资源的一种浪费,因为如果它是回文数,那么该整数的前半段应该等于后半段的数值
那么问题来了,如何判断我们已经处理到了数字的一半位置了呢?
很多人又会想到使用字符串的长度。但是注意,不能借助字符串!!!
那么原数a,与不断进行a%10,a/10...
当由余数组成的反转数大于或者等于原数剩余的数值的时候,即达到了一半的位置还有一个可以简单排除的就是,如果末尾为0的话,反转后首位为0,显然这是不可能的
但0除外
*/
class Solution {public:bool isPalindrome(int x) {char str[33];int rev=0;if(x<0 || (x%10 == 0 && x!=0))return false;else{sprintf(str,"%d",x);while(rev<x){rev = rev*10+x%10;x = x/10;}if(rev==x)return true;else if(rev/10 == x)return true;else return false;}}
};
结果:
执行用时:24ms
内存消耗:8.1MB
其实,换一个思路,如果是回文数,肯定不会溢出的,因此try…catch一下也能解决,但是仍需对所有位进行反转
Leetcode-9-回文数(简单)相关推荐
- [模拟|数位] leetcode 9 回文数
[模拟|数位] leetcode 9 回文数 1.题目 题目链接 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true ...
- leetcode isPalindrome (回文数判断)
回文很简单,就是正着读和反着读一样,要判断一个数是否为回文数只需要判断正反两个是不是相等即可. 再往深了想一下,只需要判断从中间分开的两个数一个正读,一个反读相等即可. 代码: class Solut ...
- 20200119:(leetcode)回文数(3种解法)
回文数 题目 基本思路 代码实现 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -1 ...
- 【LeetCode】回文数
个人博客:https://jacob.org.cn package leetcode.editor.cn;//判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. ...
- LeetCode 9. 回文数
文章目录 1. 题目信息 2. 解题 1. 题目信息 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121 输出: true 示例 2:输 ...
- Leetcode 9. 回文数(Palindrome Number)
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- leetcode 9 --- 回文数
1 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 2 解法 2.1 初版 2.1.1 思路 由于题目不允许把数直接转化为字符串, 所以想到了把数的每一 ...
- leetcode记录-回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- LeetCode - 9. 回文数
9. 回文数 class Solution {public boolean isPalindrome(int x) {String s = String.valueOf(x);char[] chars ...
- 回文数—简单方法(C语言)
回文数即正反读都是相同的数,如151.12321等,但不要忘了,个位数与0也是回文数,虽然这不影响我们代码. 题目要求:输入n组数据,每组数据判断是否为回文数,是的话输出各位数和,不是输出no: 既然 ...
最新文章
- 2021年大数据常用语言Scala(十七):基础语法学习 Set
- 对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些?
- c语言e怎么表示_C语言程序设计(山东联盟)
- python3连接mysql_第七篇:Python3连接MySQL
- 化浆池是什么东西_冷水滩酒店海鲜贝类池定制定做大型海鲜池
- python的全局变量能暂存数据吗_Python 中的全局变量 局部变量
- 计算机教室怎样自动批量修改ip,批量设置IP地址和计算机名
- 最新研究前线-深度推荐系统真的有效吗?
- Windows 11 大更新!可安装超千款 Android 应用
- 已创建仓库后 github提交流程
- hadoop集群服务重启后出错
- 【python3.X】python学习中排雷过程^_^
- 使用卡方分箱进行数据离散化-python实现
- 苹果cms永久免费影视建站程序
- TDR/TDT测量原理分析
- 第十六周项目3函数指针调用函数 吃饭睡觉打豆豆
- 第十届泰迪杯数据挖掘B题:电力系统负荷预测分析--解题思路与部分代码03
- 一个很不错的H5动画网站
- c语言埃拉托色尼筛选法数组,埃拉托色尼筛选法 算法
- 酒店管理系统(源码+数据库)