LeetCode Golang 9.迴文數
阿新 • • 發佈:2019-01-03
第一種辦法 :itoa 轉換為字串進行處理:
package main import ( "strconv" "fmt" ) //判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 // //示例 1: // //輸入: 121 //輸出: true //示例 2: // //輸入: -121 //輸出: false //解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。 //示例 3: // //輸入: 10 //輸出: false //解釋: 從右向左讀, 為 01 。因此它不是一個迴文數。 func main() { fmt.Println(isPalindrome(0)) } func isPalindrome(x int) bool { if x < 0 { return false } if x < 10 { return true } arrX := strconv.Itoa(x) for i := 0; i < len(arrX)/2; i++ { if arrX[i] != arrX[len(arrX)-i-1] { return false } } return true }
第二種辦法:
純數學, 將 輸入的數字全部反過來 123->321, 再返回 == 比較結果
func isPalindrome(x int) bool { if x < 0{ return false } pre := x rev := 0 for x != 0{ rev = rev * 10 + x % 10 x /= 10 } return rev == pre }