[Boot camp for Beginners] B - AcCepted [Rust]
概要
AtCoder Problems: Boot camp for Beginners をRustで解いてみる
- 今回の問題:B - AcCepted
- 書いたコード:提出 #55250577 - AtCoder Beginner Contest 104
学んだことmemo
- 文字列も短いしそんなに処理もないから楽勝?
- と思ったけど比較条件が多かった
- 以下の3つの条件を見ながら fold で畳み込んでいけば最終的な回答ができる
-
S の先頭の文字は大文字の
A
である。- これは先頭だけ見ればOK
-
S の先頭から 3 文字目と末尾から 2 文字目の間(両端含む)に大文字の
C
がちょうど 1 個含まれる。- これが地味にだるい
bool
に畳み込もうとしたが、奇数個/偶数個などの場合考えると面倒
C
の数をカウントする方向で畳み込んで、最後に 1 かどうかみる- 罠
- 先頭から 3 文字目のindex > 末尾から 2 文字目 のindex になる場合がある ( の時とか)
- 後者は
max(s.len() - 2, 2)
にしておくと安全
- これが地味にだるい
-
以上の
A
,C
を除く S のすべての文字は小文字である。- 最初この条件を読み飛ばしてた
- これは
すべて
なので、true && 小文字かどうか
でbool
に畳み込めば一発