Leetcode 946. Validate Stack Sequences sequence verification Stack

946. Validate Stack Sequences

Title Description

Given two sequences pushed and popped with distinct values, return true if and only if this could have been the result of a sequence of push and pop operations on an initially empty stack.

Examples

Example 1

Input: pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
Output: true
Explanation: We might do the following sequence:
push(1), push(2), push(3), push(4), pop() -> 4,
push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1

Example 2

Input: pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
Output: false
Explanation: 1 cannot be popped before 2.

answer

This question is very simple, the number of each array pushed inside the stack, and then when the first unprocessed equal push popped value and when the value inside, proceeds to the cycle, the value inside the array popped from the stack removed.

Finally, inside the array is determined whether the value popped processed.

. 1 
2
. 3
. 4
. 5
. 6
. 7
. 8
. 9
10
. 11
12 is
13 is
14
15
16
Large columns   Leetcode 946. Validate Stack Sequences sequence verified stack INE ">. 17
18 is
. 19
20 is
21 is
22 is
class  {
public:
bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
stack<int> mystack;
int i = 0;

for (auto &s : pushed) {
mystack.push(s);

while (!mystack.empty() && mystack.top() == popped[i]) {
i ++;

mystack.pop();
}

}
if (mystack.empty() && i == popped.size()){
return true;
}
return false;
}
};

Guess you like

Origin www.cnblogs.com/lijianming180/p/12037916.html