rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn validate_stack_sequences(pushed: Vec<i32>, popped: Vec<i32>) -> bool {
        let mut stack = vec![];
        let mut it = popped.iter().peekable();
        for x in pushed {
            stack.push(x);
            while let (Some(&a), Some(&&b)) = (stack.last(), it.peek()) {
                if a == b {
                    stack.pop();
                    it.next();
                } else {
                    break;
                }
            }
        }
        stack.is_empty()
    }
}

#[test]
fn test() {
    let pushed = vec![1, 2, 3, 4, 5];
    let popped = vec![4, 5, 3, 2, 1];
    let res = true;
    assert_eq!(Solution::validate_stack_sequences(pushed, popped), res);
    let pushed = vec![1, 2, 3, 4, 5];
    let popped = vec![4, 3, 5, 1, 2];
    let res = false;
    assert_eq!(Solution::validate_stack_sequences(pushed, popped), res);
}