LeetCode 回文数(Palindrome Number)

题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

解题思路

思路一:
利用将整数转为字符串,然后利用stringbuffer的字符串反转后判断

public boolean isPalindrome(int x) {
     String aString=String.valueOf(x);
     StringBuffer aBuffer = new StringBuffer(aString);
     String bString=aBuffer.reverse().toString();
     if(aString.equals(bString)){
         return true;
     }else{
         return false;
     }
    }

思路二
利用整数对10取余来判断数字左右是否对称。

public boolean isPalindrome(int x) {
            if (x < 0) {
      return false;
    }
    if (x < 10) {
      return true;
    }
    int len = 1;
    while (x / len >= 10) {
      len *= 10;
    }
    while(x > 0) {
      int left = x/len;
      int right = x%10;
      if (left != right) {
        return false;
      } else {
        x = (x%len)/10;
        len/=100;
      }
    }

    return true;
    }

题目地址:https://leetcode-cn.com/problems/palindrome-number/description/

猜你喜欢

转载自blog.csdn.net/qq_35033270/article/details/80635173
今日推荐