C/C++教程

LeetCode每日刷题-9. 回文数

本文主要是介绍LeetCode每日刷题-9. 回文数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

来源:LeetCode

题目:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例1:

输入:x = 121
输出:true

示例2:

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

这个示例告诉我们排除掉负数

示例3:

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

这个示例告诉我们需要把尾数为0的数排除,只有0才是回文数。

要判断数字是不是回文数还可以用这种方法:

将它切开来一般判断前一半原数字和后一半的逆序数字是不是相等,如1221,将它切成两半,12和21的逆序‘12’是相等的,返回true。

JavaScript写法:

 1 var isPalindrome = function(x) {
   //排除负数
 2 if( x < 0){
 3     return false;
 4 }
   //排除尾数为0且不等于0的数
 5 if(x%10==0&&x!=0){
 6     return false;
 7 }
   //用a来判断
 8 let a = 0;
   //遍历循环 x>a用来求中位数
 9 while(x>a){
10     a = a*10 + x%10;
11     x = Math.floor(x/10);
12 }
13 return x === a || x === Math.floor(a/10);
14 };

 

 

 

这篇关于LeetCode每日刷题-9. 回文数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!