LeetCode 9. Palindrome Number 判断是否为回文数

Determine whether an integer is a palindrome. Do this without extra space.

题目解释:判断一个数是否为回文数,不能使用额外的空间

注意:

1.负数不能是回文数  

2.如果转化为字符串进行处理就利用了额外的空间(If you are thinking of converting the integer to string, note the restriction of using extra space.

利用字符串处理(通过但不正确)

public  boolean isPalindrome(int x) {
		int i=0,j;
        String result = x+"";
        char[] mid = result.toCharArray();
        j = mid.length-1;
        if(mid[0]=='-')
        	return false;
        while(i<j){
        	if(mid[i]!=mid[j])
        		return false;
        	i++;j--;
        }
        return true;
    }

使用了一个额外的整型变量

public static boolean isPalindrome(int x) {
		if(x<0||(x>0&&x%10==0))
			return false;
		int rev = 0;
		while(x>rev){
			rev = rev*10+x%10;
			x /= 10;
		}
		if(x==rev||(x==(rev/10)))
			return true;
		else return false;
    }

   x           x    rev

12321 -> 12 123

2442  ->  24  24

首先尾数是0的要排除掉,只用处理到x的一半即可


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值