zoukankan      html  css  js  c++  java
  • 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.easy;
    
    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;
    	}
    }
    
  • 相关阅读:
    spring读书笔记----Quartz Trigger JobStore出错解决
    Linux:Ubuntu16.04下创建Wifi热点
    Java:IDEA下使用JUNIT
    MYSQL:基础—存储过程
    StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
    EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand
    .NET Core配置文件加载与DI注入配置数据
    ASP.NET Core实现OAuth2.0的AuthorizationCode模式
    CSS实现的几款不错的菜单栏
    开发VS2008 AddIn 入门Sample
  • 原文地址:https://www.cnblogs.com/denggelin/p/11520815.html
Copyright © 2011-2022 走看看