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。 } }