回文数的判定

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

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

示例 1:

输入: 121 输出: true

示例 2:

输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。

进阶:

你能不将整数转为字符串来解决这个问题吗?(采用数学方法进行判断)

//解法1,直接StringBuffer的reverse反转方法反转,在进行equals进行判断public boolean isPalindrome(int x) {boolean flag = false;String string = x + "";String reverse = new StringBuffer(string).reverse().toString();//用字符串equals方法判断这两个字符串是否相等if (string.equals(reverse)) {flag = true;}return flag;}

解释:
1.整数转字符串可以使用:String string=整数num+"" ,这样就能将整数转换为字符串,用字符串中的方法了。

关于整数和字符串的转换可以参考这篇博客

2.StringBuffer的构造函数参数可以是String,StringBuffer包含一个reverse的方法(反转)

//解法2.通过取整和取余操作获取整数中对应的数字进行比较。
public boolean isPalindrome(int x) {//边界判断if (x < 0) return false;    //负数肯定不是回文数,比如-1,反转之后就是1-   不满足题中条件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;}

解释:

1.比如1221,第一个while循环的时候div结果是1000,这个div算是一个中间变量,可以通过它得到整数最高位和最低位。

2.那么在第二个循环while中第一次循环left为1221/1000,right为1221%10,x = (x % div) / 10;算是掐头去尾,将1221中最高位和最低位的1去掉,x的值位22,很有意思叭,div/=100,接着继续循环
(此算法非原创,来自leetcode题解-作者:程序员小吴)

00003-回文数的判定-leetcode-解法不唯一,1.reverse最简单,2.数学方法很有意思相关推荐

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

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

  2. 判断回文数的两种解法

    一.首先什么是回文数呢? "回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这 ...

  3. 小练习----春夏秋冬,回文数,不死神兔,去掉最高最低求和,数组反转,简单加密,switch语句

    春夏秋冬 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); if (a == 1 || a == 2 || a == 12) {Sy ...

  4. c语言数据结构判断回文数,C++数据结构与算法之判断一个链表是否为回文结构的方法...

    本文实例讲述了C++判断一个链表是否为回文结构的方法.分享给大家供大家参考,具体如下: 题目: 给定一个链表头节点head,请判断是否为回文结构 例如: 1->2->1 true 1-&g ...

  5. leetcode 5. Longest Palindromic Substring 字符串中的最长回文数 逐步从O(n^2)优化至线性时间

    题目 解析 思路一 暴力解法 思路二 指针+最大长度 思路3 由中间至两边找回数 思路4 Manacher's algorithm 线性时间 参考文档 题目 链接 给定一个字符串 s,找到 s 中最长 ...

  6. Python 算法 入门到精通 - LeetCode - 3 :回文数

    本系列适合跟我一样新入门的同学,我会从最基础的方法一步一步优化,所有代码都可以直接复制运行,希望有所帮助.如果喜欢可以订阅本系列(基于python3) 先看题目: 给你一个整数 x ,如果 x 是一个 ...

  7. N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)

    题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...

  8. Java实现回文数四种方法

    干货分享 | 打印回文数的四种方法!! 本文提供了四种方法来打印回文数,大家可以根据题目的要求(如:时间复杂度.运行时间.内存等限制条件)来选取合适的方法.如果题目要求打印的回文数较大,我们可以选择将 ...

  9. 10000内的回文数c语言,回文数

    "回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这样的特征,成为回文数(pa ...

最新文章

  1. BoneCP学习笔记——配置参数
  2. Web Services简单介绍
  3. 【DG】Oracle 19c使用dbca来搭建物理DG
  4. 小白的CMMI3体验
  5. UVAoj 348 - Optimal Array Multiplication Sequence
  6. (软件工程复习核心重点)第七章软件维护习题
  7. springmvc + mybatis + ehcache + redis 分布式架构
  8. scala trait
  9. Spring框架(中) AOP
  10. SqlServer发布订阅错误收集
  11. UNIX、Linux与Windows之比较
  12. php json转数组不成功,phpjson转数组出错
  13. 《烈烈先秦》8、独撑大厦的真勇者——半残战神李牧
  14. 优思学院|六西格玛:如何最有效地制定目标?
  15. NodeMCU文档中文翻译 6 MQTT模块
  16. AutoCAD.NET实现CAD截图
  17. 杰理之音箱版本 SDK200 单音 VCOMO 直推,喇叭没声音问题【篇】
  18. 计算机应用基础(专)【10】
  19. 【web课程设计】HTML+CSS仿QQ音乐网站
  20. Hive常用库表操作及知识汇总

热门文章

  1. LeetCode 1144. 递减元素使数组呈锯齿状(奇偶分别遍历)
  2. PageRank 算法
  3. 上下伸缩代码_CQRS之旅——旅程4(扩展和增强订单和注册限界上下文)
  4. TIGK监控平台介绍
  5. RDD持久化、广播、累加器
  6. 怎么画单极交流放大电路波形图_区别在哪?:VCC、VDD、VEE、VSS、数字地、模拟地、信号地、交流地、直流地!...
  7. AcWing之从尾到头打印链表
  8. Android官方开发文档Training系列课程中文版:Activity测试之创建单元测试
  9. 集成学习(西瓜书学习)
  10. 【LeetCode】3月22日打卡-Day7