[Boot camp for Beginners] B - ATCoder [Rust]
概要
AtCoder Problems: Boot camp for Beginners をRustで解いてみる
- 今回の問題:B - ATCoder
- 書いたコード:提出 #46877950 - AtCoder Beginner Contest 122
学んだことmemo
- 部分文字列...めんどくさいやつだ...
ACGT
以外を含まないかどうか- chars で文字に分解して,
vec!['A', 'C', 'G', 'T'].contains(&c)
を all でみればいい
- chars で文字に分解して,
- 部分文字列の中で一番長さが長いものを見つける
- 最初の文字列がACGT文字列でなければ、head/tail どちらか一文字を削って同じ処理をする
- 大きかった方を採用する
- という流れを再起的にやれば二分探索的な感じで解けないか
- 終端処理は文字列の長さが0だったら0、もしくはACGT文字列なら長さを返す
ATCODER (x)
|--- ATCODE (x)
| |--- ATCOD (x)
| | |--- ATCO (x)
| | | |--- ATC (3)
| | | `--- TCO (x)
| | | |--- TC (2)
| | | `--- CO (x)
| | | |--- C (1)
| | | `--- O (x)
| | | `--- '' (0)
| | `--- TCOD (x)
| `--- TCODE (x)
| |--- TCOD (x)
......省略......
| `--- CODE (x)
`--- TCODER
|--- TCODE (x)
......省略......
`--- CODER (x)
......省略......
- ↑こんな感じ
- 正解だった
- が、これは文字列が長い場合はoverflowする
- 文字列が長い場合の正解はわからない