会社からの緊急確認
お前、Go言語使えるよな?Goを使えるメンバー探してるからOKって言っておくよ。とのラインが・・・
Go言語は2,3年以上使っていないし、pythonに慣れすぎて、あの厳密な型定義に耐えられない気がする。
とはいえ、昔と違い今はChatGPT様がいるから対して問題じゃないんですよね。(メンバー探しているプロジェクトで生成AI使用禁止などのルールがなければですが)
とりあえず、AtCoderのA問題で確認しておきますか。
Python
まずは、慣れているPython
ac.py
def main() -> None:
N,c1,c2 = input().split()
S = input()
T = [""] * len(S)
for i in range(len(S)):
if S[i] != c1:
T[i] = c2
else:
T[i] = S[i]
print("".join(T))
if __name__ == "__main__":
main()
Go言語
ac.go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
// 入力を読み込む
var N string
var c1, c2 string
fmt.Scan(&N, &c1, &c2)
S, _ := reader.ReadString('\n')
// 文字列Sの長さを取得
length := len(S) - 1 // 改行文字を除くため -1
// 新しいスライスを作成
T := make([]rune, length)
for i, char := range S[:length] {
if string(char) != c1 {
T[i] = []rune(c2)[0] // c2の最初の文字を代入
} else {
T[i] = char // c1の場合はそのまま代入
}
}
// 結果を出力
fmt.Println(string(T))
}
思い出してきた。。。
pythonからGoに移るのって結構手間取るんだった。
付け焼き刃では心もとないな・・・
Goの学習開始時に非常に参考にさせていただいた、UdemyのGoの講座さっと復習した方が良さそうですね。