アルゴ式の問題を解く Go ランレングス圧縮の復元
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 ランレングス圧縮の復元 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" "strconv" ) func isNum(r byte) bool { if 10 > int(r - '0') && int(r - '0') >= 0 { return true } return false } func main() { var t, s string fmt.Scan(&t) i := 0 for ; i < len(t); { j := 1 for ; i+j < len(t); j++ { if !isNum(t[i+j]) { break } } n, _ := strconv.Atoi(t[i+1:i+j]) for k := 1; k <= n; k++ { s += string(t[i]) } i += j } fmt.Println(s) } 割と時間かかってしまいました。 文字が数値かどうか判定するための関数を実装して、次の文字が数値か判定して繋ぎ合わせるみたいな感じです。 ということで今回はこれで👍