题目:

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

思路及代码:
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-回文数(简单)相关推荐

  1. [模拟|数位] leetcode 9 回文数

    [模拟|数位] leetcode 9 回文数 1.题目 题目链接 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true ...

  2. leetcode isPalindrome (回文数判断)

    回文很简单,就是正着读和反着读一样,要判断一个数是否为回文数只需要判断正反两个是不是相等即可. 再往深了想一下,只需要判断从中间分开的两个数一个正读,一个反读相等即可. 代码: class Solut ...

  3. 20200119:(leetcode)回文数(3种解法)

    回文数 题目 基本思路 代码实现 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -1 ...

  4. 【LeetCode】回文数

    个人博客:https://jacob.org.cn package leetcode.editor.cn;//判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. ...

  5. LeetCode 9. 回文数

    文章目录 1. 题目信息 2. 解题 1. 题目信息 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121 输出: true 示例 2:输 ...

  6. Leetcode 9. 回文数(Palindrome Number)

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...

  7. leetcode 9 --- 回文数

    1 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 2 解法 2.1 初版 2.1.1 思路 由于题目不允许把数直接转化为字符串, 所以想到了把数的每一 ...

  8. leetcode记录-回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...

  9. LeetCode - 9. 回文数

    9. 回文数 class Solution {public boolean isPalindrome(int x) {String s = String.valueOf(x);char[] chars ...

  10. 回文数—简单方法(C语言)

    回文数即正反读都是相同的数,如151.12321等,但不要忘了,个位数与0也是回文数,虽然这不影响我们代码. 题目要求:输入n组数据,每组数据判断是否为回文数,是的话输出各位数和,不是输出no: 既然 ...

最新文章

  1. 2021年大数据常用语言Scala(十七):基础语法学习 Set
  2. 对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些?
  3. c语言e怎么表示_C语言程序设计(山东联盟)
  4. python3连接mysql_第七篇:Python3连接MySQL
  5. 化浆池是什么东西_冷水滩酒店海鲜贝类池定制定做大型海鲜池
  6. python的全局变量能暂存数据吗_Python 中的全局变量 局部变量
  7. 计算机教室怎样自动批量修改ip,批量设置IP地址和计算机名
  8. 最新研究前线-深度推荐系统真的有效吗?
  9. Windows 11 大更新!可安装超千款 Android 应用
  10. 已创建仓库后 github提交流程
  11. hadoop集群服务重启后出错
  12. 【python3.X】python学习中排雷过程^_^
  13. 使用卡方分箱进行数据离散化-python实现
  14. 苹果cms永久免费影视建站程序
  15. TDR/TDT测量原理分析
  16. 第十六周项目3函数指针调用函数 吃饭睡觉打豆豆
  17. 第十届泰迪杯数据挖掘B题:电力系统负荷预测分析--解题思路与部分代码03
  18. 一个很不错的H5动画网站
  19. c语言埃拉托色尼筛选法数组,埃拉托色尼筛选法 算法
  20. 酒店管理系统(源码+数据库)

热门文章

  1. 基于Elasticsearch 7.0 的从零开始构建知识图谱-win10测试
  2. mapreduce web日志预处理
  3. 数据--第24课 - 队列的特别实现
  4. 激光实现3D空气成像技术,无需屏幕
  5. 开发工具总结(6)之Android Studio模板配置详解(提高开发效率必备技能)
  6. 团队开发时该如何同步数据库变更到本地
  7. OSChina 周二乱弹 ——追风的少年已经阵亡
  8. 摘抄:敏捷测试自动化策略
  9. java代码split分割数字类
  10. Windows2003 Server下尝试360安全卫士6.0