LeetCode_9。回文数

 

9.回文数

イージー

整数パリンドロームであるかどうかを決定します。それは、前方同じ後方を読み込む際に整数が回文です。

例1:

入力:121

出力:真

例2:

入力:-121

出力:偽

説明:左から右へ、それは-121を読み込みます。右から左に、それは121〜124となります。したがって、それは回文ではありません。

例3:

入力:10

出力:偽

説明:右から左に01を読み込みます。したがって、それは回文ではありません。

ファローアップ:

あなたは、整数を文字列に変換することなく、それを解決Coud?

 

パッケージleetcode。

パブリッククラスPalindromeNumber { 
	@ org.junit.Test 
	公共ボイド試験(){ 
		int型数値1 = 121。
		int型数値2 = -121; 
		int型number3 = 10; 
		PalindromeNumber palindromeNumber =新しいPalindromeNumber(); 
		System.out.println(palindromeNumber.isPalindrome(数値1))。
		System.out.println(palindromeNumber.isPalindrome(数値2))。
		System.out.println(palindromeNumber.isPalindrome(number3))。
	} 

	パブリックブールisPalindrome(INT X){ 
		//特別な場合:
		//上述のように、X <0、xはパリンドロームではありません。
		//また、番号の最後の桁があるために、0であれば 
		//回文、
		//番号の最初の数字も0にする必要がある
		// 0のみ、このプロパティを満たします。
		IF(X <0 ||(Xの%10 == 0 && x = 0)!){ 
			falseを返します。
		} 

		INT revertedNumber = 0。
		一方、(X> revertedNumber){ 
			revertedNumber = revertedNumber * 10 + X%10。
			X / = 10。
		} 

		//長さが奇数である場合、我々は中間桁を取り除くことができ
		revertedNumber / 10によって// 
		入力は、我々は、whileループの終了時に、12321である場合、例えば// 
		X = 12を取得// revertedNumber = 123は、
		中央の桁が(それは常に意志palidromeには関係ありませんので、// 
		自体に//等しい)、我々は単にそれを取り除くことができます。
		X == revertedNumberを返す|| X == revertedNumber / 10。
	} 
}

 

おすすめ

転載: www.cnblogs.com/denggelin/p/11520815.html