回文数|刷题打卡

109 阅读1分钟

一.问题描述

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。 

示例1:

输入:x = 121
输出:true

示例2:

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

示例3:

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

二.解题思路

最开始的一个想法是将整数x反转,然后与整数x相比较,但是这里考虑到数太大,便反转一半,考虑边界值,小于0的自然不是回文数,还有就是10的倍数也不可能,因为数值的第一个数字不能为0(这里排除了0),如果为0,0也是回文数。

class Solution {    public boolean isPalindrome(int x) {      int number=0;      if(x==0)      return true;  if(x<0)      return false;  if(x%10==0)      return false;  while(number<x){      number=number*10+x%10;      x=x/10;        }    if(number==x||number/10==x)      return true;  return false;    }}

三.总结

每一次的总结都是对自己最好的奖励。嗖嗖

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情