領扣刷題 leetcode 09

2022-07-20 19:15:07 字數 926 閱讀 5012

示例 2:

示例 3:

你能不將整數轉為字串來解決這個問題嗎?

#include #includebool ispalindrome(int x);

int main()

bool ispalindrome(int x)

left=left/10;

}if(left==right)

return false;

}

我來解釋一下上面那個while迴圈裡的內容

首先,跳出條件是left<=right,即左邊大於右邊

比如 12361 當讀取到中間的時候 left=12 right=163 即左邊比右邊低一位(x為奇數) 或者 相同位數的時候跳出(x為偶數)

right=right*10+left%10這個沒什麼好解釋的,就是右邊又多了一位

接下來必須判斷一次 left==right 因為當x為單數時 比如x=121,left=12 right=12 是應該返回true的,沒有辦法很好的解決這個問題,所以需要增加一次判斷

bool ispalindrome(int x) 

int revertednumber = 0;

while(x > revertednumber)

return x == revertednumber || x == revertednumber/10;

}

首先 第乙個判斷沒什麼好解釋的,和我的一樣(我和他一樣才對)

哇,官解的寫好和我好像,他好像能夠避免 while迴圈內的判斷

讓我看看他是怎麼做到的

他在返回時增加了乙個x == revertednumber/10 很好的解決了這個問題...我沒想到

舉個例子 x=121,退出迴圈時 left(x)=1 right(revertednumber)=12 就解決了這個問題

領扣刷題 leetcode 07

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 2 示例 3 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返回 0。includeint reverse int x int main 21...

領扣刷題 關於數

最近在刷題,把同一型別的題目整合在一起,方便理解和學習。1 寫乙個程式來檢測乙個整數是不是醜數。醜數的定義是,只包含質因子2,3,5的正整數。比如 6,8 就是醜數,但是 14 不是醜數因為他包含了質因子 7。public boolean isugly int num else while num ...

領扣刷題 N皇后問題

題目描述如下 n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問題的棋子放置方案,該方案中 q 和 分別代表了皇后和空位。示例 ...