MCPcopy Create free account
hub / github.com/StudyRust/leetcode_rust / validate_stack_sequences

Function validate_stack_sequences

946-validate-stack-sequences.rs:1–19  ·  view source on GitHub ↗
(pushed: Vec<i32>, popped: Vec<i32>)

Source from the content-addressed store, hash-verified

1pub fn validate_stack_sequences(pushed: Vec<i32>, popped: Vec<i32>) -> bool {
2 let mut stack: Vec<i32> = vec![];
3 let mut pushed = pushed;
4 let mut popped = popped;
5 while pushed.len() > 0 {
6 let tmp = pushed.remove(0);
7 stack.push(tmp);
8 if tmp == popped[0] {
9 // 这里应该持续出栈
10 while stack.iter().last().is_some() && *stack.iter().last().unwrap() == popped[0] {
11 stack.pop();
12 popped.remove(0);
13 }
14 }
15 }
16 if stack.len() == 0 { return true }
17 stack.reverse();
18 stack == popped
19}
20
21fn main() {
22 println!("{:?}", validate_stack_sequences(vec![1,2,3,4,5], vec![4,5,3,2,1]));

Callers

nothing calls this directly

Calls 3

removeMethod · 0.45
pushMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected