[Pregunta diaria] 28: Pila de secuencia de empuje y pop

Descripción del título

Ingrese dos secuencias enteras. La primera secuencia indica la secuencia de apilamiento. Por favor, determine si la segunda secuencia puede ser la secuencia emergente de la pila. Suponga que todos los números introducidos en la pila no son iguales.

Ejemplos:

La secuencia 1,2,3,4,5 es la secuencia de inserción de una pila, la secuencia 4,5,3,2,1 es una secuencia emergente correspondiente a la secuencia de la pila, pero 4,3,5,1,2 es No puede ser la secuencia pop de la secuencia de inserción. (Nota: las longitudes de las dos secuencias son iguales)

Código de respuesta:

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        stack<int> tmp;
        int i = 0;
        
        for(auto & vi : pushV){
            tmp.push(vi);
            
            for(; !tmp.empty() && tmp.top() == popV[i]; ++i){
                tmp.pop();
            }
        }
        return tmp.empty();
    }
};

Si tiene otras opiniones diferentes, deje un mensaje para discutir ~~~

152 artículos originales publicados · 45 elogiados · 10,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/AngelDg/article/details/105378423
Recomendado
Clasificación