こんにちは、ナナオです。
前回に引き続き競プロを実施していきたいと思います。
今回の問題は以下です。
実装
以下のように実装しました。
package main
import (
"fmt"
"strconv"
)
func main() {
var s string
fmt.Scan(&s)
c := s[0]
ind := 1
r := ""
for i := 1; i < len(s); i++ {
if c != s[i] {
r += string(c) + strconv.Itoa(ind)
c = s[i]
ind = 1
} else {
ind++
}
}
r += string(c) + strconv.Itoa(ind)
fmt.Println(r)
}
continueを使うとコードの重複もなくなりきれいになります。
package main
import (
"fmt"
"strconv"
)
func main() {
var s string
fmt.Scan(&s)
ind := 1
r := ""
for i := 1; i <= len(s); i++ {
if i < len(s) && s[i-1] == s[i] {
ind++
continue
}
r += string(s[i-1]) + strconv.Itoa(ind)
ind = 1
}
fmt.Println(r)
}
ということで今回はこれで👍