Module d
Expand description
§ABC 394 D - Colorful Bracket Sequence
refs: https://atcoder.jp/contests/abc394/tasks/abc394_d
Stack を使ってやると, ()
, []
, <>
の部分文字列の削除を簡易に実行できる.
マッチするカッコを随時削除していき, 最終的にすべてのカッコがマッチして消滅していればカラフル括弧列になる.
use proconio::{input, marker::Chars};
fn main() {
input! {
mut s: Chars
}
let mut buf = Vec::new();
while !s.is_empty() {
match (s.last(), buf.last()) {
(Some('('), Some(')')) | (Some('['), Some(']')) | (Some('<'), Some('>')) => {
s.pop();
buf.pop();
}
(Some(&c), _) => {
s.pop();
buf.push(c);
}
(None, _) => break,
}
}
if buf.is_empty() {
println!("Yes");
} else {
println!("No");
}
}