😎
leetcode"Palindrone Number"をGoで解いてみた
概要
前回に続き、leetcodeを解いていく。そして戒めていく。
問題
詳細はこちら
palindroneとは回文の意味
解答のプロセス
以下のように問題を解いていくことを考えた。
これを参考に解答を作成していく。
(1)intをstringに変換する
最初に書いたコードは次のようなもの。
x := 123
str_x = string(x)
fmt.Println(str_x)
これを実行した場合、出力は下記のようになる。
y
これはUnicodeのコードポイントとして解釈されるためである。
そこでstrconv関数を利用する。x := 123
str_x = strconv.Itoa(x)
fmt.Println(str_x)
作成したコード
package main
import "fmt"
import "strconv"
func isPalindrome(x int) bool {
str_x := strconv.Itoa(x)
for i := 0;i < len(str_x);i++ {
if str_x[i] != str_x[len(str_x) - i - 1]{
return false
}
}
return true
}
func main() {
fmt.Println(isPalindrome(123))
}
これによりAcceptedされました!!
感想
Acceptedされてウレシオサウルス。
ポイントとしては,
- intからstrの変換に関してはstring(x)では、Unicodeのコードポイントとして出力されてしまう。
- なので、
strconv
を利用することでintをそのまま出力することができる
Discussion