Simplify match
This commit is contained in:
parent
6d9fbe0edf
commit
aa33a74bc7
@ -23,15 +23,18 @@ fn solve(input: &str) -> (usize, usize) {
|
|||||||
|
|
||||||
fn is_well_formed<'a>(line: &str, stack: &'a mut Vec<u8>) -> Result<&'a mut Vec<u8>, usize> {
|
fn is_well_formed<'a>(line: &str, stack: &'a mut Vec<u8>) -> Result<&'a mut Vec<u8>, usize> {
|
||||||
for c in line.bytes() {
|
for c in line.bytes() {
|
||||||
match (stack.last(), c) {
|
match c {
|
||||||
(_, b'(' | b'[' | b'<' | b'{') => stack.push(c),
|
b'(' | b'[' | b'<' | b'{' => stack.push(c),
|
||||||
(Some(b'('), b')') | (Some(b'['), b']') | (Some(b'{'), b'}') | (Some(b'<'), b'>') => {
|
b']' | b'}' | b'>' if stack.last().unwrap() + 2 == c => {
|
||||||
stack.pop();
|
stack.pop();
|
||||||
}
|
}
|
||||||
(_, b')') => return Err(3),
|
b')' if stack.last().unwrap() == &b'(' => {
|
||||||
(_, b']') => return Err(57),
|
stack.pop();
|
||||||
(_, b'}') => return Err(1197),
|
}
|
||||||
(_, b'>') => return Err(25137),
|
b')' => return Err(3),
|
||||||
|
b']' => return Err(57),
|
||||||
|
b'}' => return Err(1197),
|
||||||
|
b'>' => return Err(25137),
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user