LeetCode_回文数(三种解法-Java)
回文数
补充:
回文就是对称的美。有回文句,比如:“蜜蜂酿蜂蜜。”
还有回文诗,比如:“人过大佛寺,寺佛大过人。”
回文数:如: 121,12321
回文算式:如:12 * 42 = 24 * 21
题目:
- 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
- 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:
输入:x = -101
输出:false
解答:
方法一:通过字符串的字符数组,判断对称性
package palindrome;
//回文数练习的方法一
public class Test1 {/*通过字符串的字符数组,判断对称性*/public boolean isPalindrome(int x) {String str = String.valueOf(x);//将int类型转化成字符串char[] array = str.toCharArray();//将字符串转化为char数组for (int i=0;i<array.length/2;i++){//循环遍历数组的一半//循环判断数组第一个值与最后一个值是否相等if (array[i] != array[array.length-1-i]){return false;}}return true;}public static void main(String[] args) {Test1 test1 = new Test1();System.out.println(test1.isPalindrome(12321));}
}
控制台输出结果为:
方法二:通过翻转,判断是否为回文数
package palindrome;
/*通过翻转判断是否为回文数*/
public class Test2 {public boolean isPalindrome(int x) {String str = String.valueOf(x);//调用string的方法,将int类型转化成字符串//调用stringBuilder的翻转方法String value = new StringBuilder(str).reverse().toString();if (str.equals(value)){//判断原先的值和翻转过来的值是否相等return true;}return false;}public static void main(String[] args) {Test2 t = new Test2();System.out.println(t.isPalindrome(12421));}
}
控制台输出的结果为:
方法三:通过数学公式判断对称性
package palindrome;
//用数学公式判断对称性
public class Test3 {/**以1221这个数字来举例子。*1)首先要获取它的最高位(1221/1000=1)和最低位(1221%10=1)* 2)获取到最高位和最低位进行比较。然后去掉最高位(1221%1000=221)和最低位(221/10=22),循环比较。* 3)再次获取22这个值的最高位(22/10=2)与最低位(22%10=2)进行比较是否相等。* */public boolean isPalindrome(int x) {if (x<0){//x的值小于0,不符合题目要求return false;}int bit = (int)Math.log10(x);//获取x值的位数int div = (int)Math.pow(10,bit);//根据x值的位数获取10的几次方幂while (x>0){//对x的值循环判断,当x的值小于等于0时,说明该值已经循环完毕了int left = x/div;//获取最高位的值int right = x%10;//获取最低位的值if (left != right) {//判断最高值与最低值是否相等return false;}x = (x % div) / 10;//去掉最高位和最低位//再次获取最高位的时候,是不同的。//如上的注释中:去掉最高位的时候1000-->10//10的幂次降低了:1000/100=10div = div/100;}return true;}public static void main(String[] args) {Test3 t = new Test3();System.out.println(t.isPalindrome(12421));}
}
控制台输出如下图所示:
留言:欢迎小伙伴们的评论哈 ~
LeetCode_回文数(三种解法-Java)相关推荐
- jsp判断字符串相等_最长回文字符串三种解法
先解释一下什么是回文字符串,比如说字符串"aba",无论是从先往后读取还是从后往前读取,结果都是一样的.当给定很长的字符串时,如何快速获取到最长的回文字符串,这也是大厂比较常见的算 ...
- 判断一个数是否为回文数(三种方法,详细注解)
题目要求: 给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.例如,121 是回文,而 123 ...
- 洛谷回文数c语言,【普及-】洛谷P1015:回文数 一种解法
解法 这里考虑到进制的问题,需要把所输入的数字作为字符串(数组名为origin,16进制为大写字母),然后通过转换化为一个个的十进制数位,作为数组的数据元素,这样,在判断是否回文的时候直接从数组两边取 ...
- Java判断回文数(两种方式)
Java判断回文数(两种方式) 回文数是一个非常特殊的数,它从左边读和从右边读是一样的.例如12321 判断方式有两种. 方式一:对该数字进行分解,然后一一比对,拆解成 1 2 3 2 1,然后第一位 ...
- Java(回文数--一种比较简单的写法)
回文数.编写一个Java应用程序.用户从键盘输入一个1-99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数.回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如121.23 ...
- Java实现回文数四种方法
干货分享 | 打印回文数的四种方法!! 本文提供了四种方法来打印回文数,大家可以根据题目的要求(如:时间复杂度.运行时间.内存等限制条件)来选取合适的方法.如果题目要求打印的回文数较大,我们可以选择将 ...
- java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]9. 回文数(简单) 宫水三叶发布于 今天 15:30 题目描述 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从 ...
- 最长回文子串-三种DP实现
最长回文子串 https://leetcode-cn.com/problems/longest-palindromic-substring/ 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 ...
- 回文数的判断(JAVA)
题目概述: 编写程序:判断给定的字符串是否为回文字符串.回文字符串"从前向后读"和"从后向前读"都相同 分析: 首先要判断什么样的形式是回文字符串.根据题意,q ...
- 判断整数是否为回文的三种方式
第一种: 将整型转为char型数组两两进行判断 public static boolean judgePalindrome(int n){char[] items=String.valueOf(n). ...
最新文章
- 记录win10快捷键
- MySQL - mysqldump多种方式实现数据迁移
- 安装phpstudy之后发现80端口被占用
- 你都知道么?Android中21种drawable标签大全
- MySQL中有外键时数据表的删除方法
- Java连接SQLite数据库
- Apache OpenOffice 漏洞使数千万用户易受代码执行攻击
- ACM-ICPC 2018 南京赛区网络预赛 B The writing on the wall(暴力)
- max点缓存烘焙帧_3DMAX怎么进行点缓存?
- es 按条件查询数据总条数
- coj #10066新的开始(最小生成树)
- 达梦数据库的服务启动
- 多重共线性:python中利用statsmodels计算VIF和相关系数消除共线性
- 笔记 09-集合(HashSet HashMap TreeMap) 练习
- pyqt 打开并显示excel表单
- 尚硅谷和黑马java,全网首发!
- A - 非提的救赎 Fzu-2190 (单调栈)
- 编写Makefile:编译当前文件夹以及子文件夹下所有的ccpp文件并生成可执行文件
- 打印后台程序没有运行,怎么办?
- IE浏览器的这个代理服务总是被自动勾选怎么办,取消之后还是会被自动勾选!!!!!!!!!!!!(暂时找到“凶手了”)
热门文章
- mybatis之 trim prefix=( suffix=)
- linux udev 禁用u盘,udev自动挂载U盘
- 读书笔记:《少有人走的路1----心智成熟的旅程》
- 聊聊龙芯Java开源
- MacBook Air下载easyconnect软件后双击打不开后发生的问题
- 2018/7/9日~年中总结
- 完美发布带摘要的dedecms幻灯片代码
- 《如何阅读一本书》章节要点整理
- 初窥 Python 的 import 机制
- 引入Flutter module,执行flutter pub get提示:XXX using an older version of the Android plugin API