Leetcode9. 回文数(双指针-对撞)

问题描述:

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

回文数

是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

  • 例如,121 是回文,而 123 不是。
示例:

示例 1:

输入:x = 121
输出:true

示例 2:

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

示例 3:

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

提示:

  • -231 <= x <= 231 - 1

进阶:你能不将整数转为字符串来解决这个问题吗?

上代码,拿去即可运行:
package com.onlyqi.daydayupgo01.test;

public class Test21 {
    public static void main(String[] args) {
        System.out.println("==================only-qi=========" + isPalindrome(121));
        System.out.println("==================only-qi=========" + isPalindrome(-121));
        System.out.println("==================only-qi=========" + isPalindrome(1221));
    }

    public static boolean isPalindrome(int x) {
        if (x < 0) return false;

        char[] charArray = String.valueOf(x).toCharArray();
        int left = 0;
        int right = charArray.length - 1;
        while (left <= right) {
            if (charArray[left] != charArray[right]) {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }
}

我要刷300道算法题,第124道 。 好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去   

你可能感兴趣的:(算法)