其他題目 判斷乙個數是否是回文數

2021-08-10 00:23:26 字數 1079 閱讀 4533

【題目】

定義回文數的概念如下:

1. 如果乙個非負數左右完全對應,則該數是回文數,例如:121,22等

2. 如果乙個負數的絕對值左右完全對應,也是回文數,例如:-121,-22等

給定乙個32位整數num,判斷num是否是回文數。

【基本思路】

具體過程如下:

1、假設判斷的數字為非負整數n,先生成變數help,開始時help = 1

2、用help不斷地乘以10,直到變得與num的位數一樣

3、那麼num/help的結果就是最高位的數字,num%10就是最低位的位置,比較這兩個數字,不相同則直接返回false。相同則令num = (num % help) / 10,即num變成除去最高位和最低位兩個數字之後的值。令help /= 100,即讓help變得繼續和新的num的位數一樣

4、如果num == 0,表示所有的數字已經對應判斷完畢,返回true,否則重複步驟3

上述方法就是讓num每次剝掉最左和最右的兩個數。需要注意的是,上述方法只適用於非負數,如果n為負數,先把n變成其絕對值,然後用上面的方法進行判斷。特別注意,如果n是32位最小值的話,它是轉不成相應的絕對值的,並且這個數很明顯不是回文數,直接返回false即可。

【**實現】

#python3.5

defisplindrome

(num):

if num == -(1

<< 31):

return

false

num = abs(num)

base = 1

while base <= num:

base *= 10

base //= 10

while num != 0:

if num % 10 != num // base:

return

false

num = num % base // 10

base //= 100

return

true

判斷乙個數是否是回文數

題目 定義回文數的概念如下 如果乙個非負數左右完全對應,則該數是回文數,如 121,22 如果乙個負數的絕對值左右完全對應,則該數是回文數,如 121,22 public static void main string args printrandm arr,3 1 5 4 system.out.p...

判斷乙個數字是否是回文數

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

判斷乙個數字是否是回文數

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。看到這個題目最先想到的就是將這個整形數字轉化成字元陣列,然後對這個字元陣列進行遍歷,這種思路當然是可以的,但是時間複雜度較高,還要引入乙個陣列,空間複雜度較高。第二個想法是將數字本身反轉,然後將反轉後的數字與原始...