字元數 讓我們一起啃演算法 回文數

2021-10-16 06:24:00 字數 1168 閱讀 7362

這是乙個比較簡單的題目,題幹如下:

判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

示例 1:

輸入: 121

輸出: true

示例 2:

輸入: -121

輸出: false

解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是乙個回文數。

示例 3:

輸入: 10

輸出: false

解釋: 從右向左讀, 為 01 。因此它不是乙個回文數。

按照題目的定義:負數一定不是回文數,並且 [0,9] 的數一定是回文數

其次,我們稍微延伸一下題目,如果判斷乙個字串是否是回文字串,我們會怎麼做?常規思路就是設定兩個指標ij分別指向字串的第乙個字元和最後乙個字元,然後指標 i 向後挪指標 j 向前挪,每挪動一次就比較指標 i 指向的字元是否和指標 j 指向的字元相等。具體流程如下:

如上,那我們是不是可以沿用判斷字串是否是回文字串的思路來判斷數字呢?當然是可以的啦。

假設目標數字是 3245,它是乙個四位數,最小的四位數是1000,3245 / 1000 就可以拿到第一位的值即 3 。
拿到了第一位的值和最後的一位的值之後,我們只需要判斷是否相等即可。

func ispalindrome(x int) bool 

div := 1

// 得到相應位數的最小值

// 例如:3245,那麼div的值就是1000

for x / (div) >= 10

for x != 0

// 去掉第一位和最後一位

// 例如:( 3245 - 3 * 1000 )/ 10 = 24

x = (x - left * div) / 10

// 因為去掉了兩位,因此div也相應的調整

div /= 100

}return true

}

每天進步一點點,加油!

c列印無符號整數 讓我們一起啃演算法 整數反轉

這是乙個比較簡單的題目,題幹如下 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,23...

摩卡,讓我們一起成長

本人加入摩卡倒頗有些緣分 在剛籌畫成立天津研發中心時,就差點成為研發中心的一員,但由於種種原因未能成行 經過一年多的等待,最終還是走進了摩卡,成為一名上海本土員工。時間如梭,加入摩卡轉眼三年了,我能很清楚地感覺到自己的成長與進步,同時也目睹了公司快速健康發展與壯大的過程,能成為摩卡人的一分子感到榮幸...

摩卡,讓我們一起成長

本人加入摩卡倒頗有些緣分 在剛籌畫成立天津研發中心時,就差點成為研發中心的一員,但由於種種原因未能成行 經過一年多的等待,最終還是走進了摩卡,成為一名上海本土員工。時間如梭,加入摩卡轉眼三年了,我能很清楚地感覺到自己的成長與進步,同時也目睹了公司快速健康發展與壯大的過程,能成為摩卡人的一分子感到榮幸...