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

看到这个题目的时候,首先不认识 Determine这个单词,英文不好没办法,查了下是确认的意思,然后不懂
palindrome这个单词, 查了下是回文的意思。

问题是 回文是个什么东西,官方解释: A palindrome is
a word, phrase, number,
or other sequence of characters which
reads the same backward or forward. 回文

虽然英文不好,但是这个英文解释还是看懂了的。意思就是从前读到后面和倒过来读是一样的。

然后又不理解后面那句 do this without extra space. 大概意思是实现的时候不能使用其他空间,其实还是不懂。

不知道第二个方法里的,Math.pow()这个方法的调用算不算使用其他空间。

public class palindrome {

	//using with extra space
	public static boolean check(int x){
		String temp = Integer.toString(x);
		boolean flag = true;
		for(int i=0;i<temp.length()/2;i++){
			char a = temp.charAt(i);
			char b = temp.charAt(temp.length()-i-1);
			if(a!=b){
				flag = false;
			}
		}
		return flag;
	}

	//using without extra space
	public static boolean check2(int x){
		if(x<0)
			return false;
		int n=1;
		int temp = x;
		while(temp/10!=0){
			temp=temp/10;
			n++;
		}
		for(int i=0;i<n/2;i++){
			int a = i;
			int b = n-1-i;
			if(getInt(x,a)!=getInt(x,b)){
				return false;
			}
		}
		return true;
	}
	// 比如 896698 这个数字,要获取百位,用896698除以100,得到8966然后取余10得到6,即为百位的数值
	private static int getInt(int x,int i){
		int a =  (int) Math.pow(10, i);
		return (x/a)%10;
	}
}

时间: 2024-10-05 17:55:28

Determine whether an integer is a palindrome. Do this without extra space.的相关文章

65. Reverse Integer &amp;&amp; Palindrome Number

Reverse Integer Reverse digits of an integer. Example1: x =  123, return  321 Example2: x = -123, return -321 click to show spoilers. Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have alr

Leetcode 题目整理-3 Palindrome Number &amp; Roman to Integer

9. Palindrome Number Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string, note the res

LeetCode7~9 Reverse Integer/String to Integer (atoi)/Palindrome Number

一:Reverse Integer 题目: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 链接:https://leetcode.com/problems/reverse-integer/ 分析:这题通过不断取余将余数存放在一个vector中,然后乘以相应的10^i次方相加即可,这里主要考虑是否overflow,因此将result设为long long int

LeetCode:Palindrome Number,Reverse Integer

Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string, note the restriction of using ext

LeetCode 9 Palindrome Number (回文数)

翻译 确定一个整数是否是回文数.不能使用额外的空间. 一些提示: 负数能不能是回文数呢?(比如,-1) 如果你想将整数转换成字符串,但要注意限制使用额外的空间. 你也可以考虑翻转一个整数. 然而,如果你已经解决了问题"翻转整数(译者注:LeetCode 第七题), 那么你应该知道翻转的整数可能会造成溢出. 你将如何处理这种情况? 这是一个解决该问题更通用的方法. 原文 Determine whether an integer is a palindrome. Do this without ex

Palindrome Number (回文数)

回文数是指这样的数字:正读和倒读都是一样的.如:595,2332都是回文数,234不是回文数. 注意:负数不是回文数 Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string

LeetCode记录之9——Palindrome Number

LeetCode真是个好东西,本来闲了一下午不想看书,感觉太荒废时间了就来刷一道题.能力有限,先把easy的题目给刷完. Determine whether an integer is a palindrome. Do this without extra space. 确定一个整数是否是回文. 做这个没有额外的空间. 这道题毕竟是easy级别的,花了大概5分钟就写出来了.我的思路就是判断回文要首尾一一对照么,如果把int转换成string类型的话比较字符就方便多了. class Solutio

009.Palindrome Number

问题链接:https://leetcode.com/problems/palindrome-number/#/description Question:Determine whether an integer is a palindrome. Do this without extra space. 题意:判断一个数是否是回文数,不使用额外的空间. 分析:直接算出数字的倒序与该数字比较即可. 代码: C++版 class Solution { public: bool isPalindrome(

9. 回文数 Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space. 题意:判断一个数字是否为回文数 如何取得一个Integer的最高位?假设x = 688答:x / mask. 设置一个和x位数一样的mask,mask = 100,然后用x/mask,表示x里面有几个mask,即是最高位数字. 688里有6个100,即为6. 如何删去一个Integer的最高位?假设x = 688答:x = x % mask. 还是