LeetCode_9. Palindrome Number
Posted denggelin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode_9. Palindrome Number相关的知识,希望对你有一定的参考价值。
9. Palindrome Number
Easy
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Input: 121
Output: true
Example 2:
Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Follow up:
Coud you solve it without converting the integer to a string?
package leetcode; public class PalindromeNumber @org.junit.Test public void test() int number1 = 121; int number2 = -121; int number3 = 10; PalindromeNumber palindromeNumber = new PalindromeNumber(); System.out.println(palindromeNumber.isPalindrome(number1)); System.out.println(palindromeNumber.isPalindrome(number2)); System.out.println(palindromeNumber.isPalindrome(number3)); public boolean isPalindrome(int x) // Special cases: // As discussed above, when x < 0, x is not a palindrome. // Also if the last digit of the number is 0, in order to be a // palindrome, // the first digit of the number also needs to be 0. // Only 0 satisfy this property. if (x < 0 || (x % 10 == 0 && x != 0)) return false; int revertedNumber = 0; while (x > revertedNumber) revertedNumber = revertedNumber * 10 + x % 10; x /= 10; // When the length is an odd number, we can get rid of the middle digit // by revertedNumber/10 // For example when the input is 12321, at the end of the while loop we // get x = 12, revertedNumber = 123, // since the middle digit doesn‘t matter in palidrome(it will always // equal to itself), we can simply get rid of it. return x == revertedNumber || x == revertedNumber / 10;
以上是关于LeetCode_9. Palindrome Number的主要内容,如果未能解决你的问题,请参考以下文章
#Leetcode# 9. Palindrome Number