题目
编程语言
rust
注意点
字符也可以用==,!=
代码
pub fn is_valid(s: String) -> bool {
let mut p = Vec::new();
for i in s.chars() {
match i {
'[' => p.push(']'),
'(' => p.push(')'),
'{' => p.push('}'),
_ => {
if p.is_empty() || i != p.pop().unwrap() {
return false;
}
}
}
}
p.is_empty()
}
测试
#[cfg(test)]
mod tests{
use super::*;
#[test]
fn test_1(){
assert_eq!(is_valid("()".to_string()),true);
}
#[test]
fn test_2(){
assert_eq!(is_valid("()[]{}".to_string()),true);
}
#[test]
fn test_3(){
assert_eq!(is_valid("(]".to_string()),false);
}
#[test]
fn test_4(){
assert_eq!(is_valid("{[]}".to_string()),true);
}
}