力扣9 回文數C

2021-10-20 19:14:24 字數 907 閱讀 3086

先排除幾個特殊情況:0是回文數;負數都不是回文數;凡是能被10整除的(10,100,1000)都不是回文數。

然後,因為int表示範圍有限,既然是回文數(左右兩邊是反過來的),那麼,這樣比較一半就好了。用int型的陣列num將輸入的數x轉換為陣列,然後,從中間斷開,比較左右兩邊是否相等,即可。

bool

ispalindrome

(int x)

int n1=

0,n2=0;

int len=num.

size()

/2;for

(int i=

0;i) n1=n1*

10+num[i];if

(num.

size()

%2==1

) len++

;//要num.size()是奇數跳過最中間的

for(

int i=num.

size()

-1;i>=len;i--

) n2=n2*

10+num[i];if

(n1==n2)

return

true

;else

return

false;}

}

題解這裡while迴圈用x>revertednumber,好機智,while迴圈後,剩餘的x就是左邊的,revertednumber就是右邊的

虧得自己還用陣列存起來。。。

int revertednumber =0;

while

(x > revertednumber)

return x == revertednumber || x == revertednumber /

10;

力扣9 回文數

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。這是我自己寫的版本。但是和官方題解相比還是差了點。public boolean ispalindrome int x return y x public bool ispalindrome int x int r...

解題力扣9 回文數

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數 示例一輸入 121 輸出 true 示例二輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例三輸入 10 輸出 false 解釋 從右向左讀,為 01...

力扣LeetCode 9 回文數

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...