D - Take ABC
キーワード
解説
1 文字ずつstack
にいれていき, 先頭 3 文字を確認して"ABC"であればその文字をstack
から消す操作を繰り返せば良い.
go の場合は, ただの配列を stack として扱うことが可能. (slicing の計算量は ?)
Go 言語: スライスの構造 (opens in a new tab)
提出コード
func main() {
S := readString()
stack := []string{}
for _, s := range S {
stack = append(stack, string(s))
l := len(stack)
if l < 3 {
continue
}
if stack[l-3] == "A" && stack[l-2] == "B" && stack[l-1] == "C" {
stack = stack[:l-3]
}
}
for _, s := range stack {
write(s)
}
}