GeniusOfCX

导航

leetcode 20 rust

题目

编程语言

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);
    }
}

posted on 2021-04-08 13:34  GeniusOfCX  阅读(37)  评论(0编辑  收藏  举报