😎

leetcode"Palindrone Number"をGoで解いてみた

2022/08/12に公開

概要

前回に続き、leetcodeを解いていく。そして戒めていく。
https://zenn.dev/eimymk2/articles/53af5a91680e42

問題

詳細はこちら
https://leetcode.com/problems/palindrome-number/

palindroneとは回文の意味

解答のプロセス

以下のように問題を解いていくことを考えた。

これを参考に解答を作成していく。

(1)intをstringに変換する

最初に書いたコードは次のようなもの。

x := 123
str_x = string(x)
fmt.Println(str_x)

これを実行した場合、出力は下記のようになる。

y

これはUnicodeのコードポイントとして解釈されるためである。
https://www.delftstack.com/ja/howto/go/how-to-convert-an-int-value-to-string-in-go/
そこで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