题解 | 栈的压入、弹出序列

class Solution {
public:
    bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
        // write code here
        int n = pushV.size();
        stack<int> s;
        int j = 0;//j为输入数组的下标
        int i = 0;//i为输出数组的下标
        while(j<n){//输入数组全部输入为止
            if(j<n && (s.empty() || s.top()!=popV[i])){
            //未全部输入且栈顶元素与弹出元素不一致,则压入
                s.push(pushV[j]);
                j++;
            }
            else{//if条件中,j<n一定为真,则else代表s不为空且s.top() ==popV[i]  
			  	s.pop();
              	i++;
            }
        }
        while(s.top()==popV[i]){//对照剩余元素直到出现不同元素或栈空
            s.pop();
            i++;
            if(s.empty())
                break;
        }
        if(s.empty()){
            return true;
        }
        return false;
    }
};

全部评论

相关推荐

1.&nbsp;实时数据采集&nbsp;&nbsp;在嵌入式系统中,如何有效地实现实时数据采集?请列出关键步骤和考虑因素。2.&nbsp;UART通信注意事项&nbsp;&nbsp;在使用UART进行设备间通信时,需注意哪些事项以确保数据传输的可靠性?3.&nbsp;FreeRTOS任务延时&nbsp;&nbsp;在FreeRTOS中,如何实现任务的延时功能?请给出具体的API和示例。4.&nbsp;SPI数据交换&nbsp;&nbsp;如何通过SPI与传感器进行数据交换?请描述配置和数据传输的过程。5.&nbsp;TCP/IP协议栈配置&nbsp;&nbsp;在嵌入式系统中,如何配置和使用TCP/IP协议栈以实现网络通信?6.&nbsp;PWM控制伺服电机&nbsp;&nbsp;如何使用PWM信号控制伺服电机的角度?请说明具体的实现方法。7.&nbsp;FreeRTOS互斥量&nbsp;&nbsp;在FreeRTOS中,如何实现互斥量的使用以保护共享资源?8.&nbsp;低功耗模式实现&nbsp;&nbsp;在嵌入式系统中,如何实现低功耗模式?请列出可采取的策略。9.&nbsp;I2C温度传感器读取&nbsp;&nbsp;如何使用I2C与温度传感器进行数据读取?请描述具体的步骤。10.&nbsp;FreeRTOS任务通知机制&nbsp;&nbsp;在FreeRTOS中,如何实现任务的通知机制以同步任务间的操作?11.&nbsp;ADC配置&nbsp;&nbsp;如何配置ADC以读取温度传感器的数值?请列出配置步骤。12.&nbsp;数据压缩实现&nbsp;&nbsp;在嵌入式系统中,如何实现数据压缩以节省存储空间?13.&nbsp;PWM控制电机速度&nbsp;&nbsp;使用PWM控制电机速度的基本原理是什么?请解释其工作机制。14.&nbsp;优先级反转&nbsp;&nbsp;在FreeRTOS中,如何处理任务的优先级反转问题?请给出解决方案。15.&nbsp;中断处理按键输入&nbsp;&nbsp;如何使用中断来处理按键输入?请描述具体的实现过程。16.&nbsp;CRC校验实现&nbsp;&nbsp;在嵌入式系统中,如何实现数据的CRC校验?请提供算法和步骤。17.&nbsp;CAN总线通信原理&nbsp;&nbsp;使用CAN总线进行车辆数据通信的基本原理是什么?请简述其工作流程。18.&nbsp;FreeRTOS事件组&nbsp;&nbsp;在FreeRTOS中,如何实现事件组的使用以管理多个任务的同步?19.&nbsp;外部中断响应&nbsp;&nbsp;如何使用外部中断来响应传感器数据变化?请说明具体的配置和实现。20.&nbsp;压力传感器读取&nbsp;&nbsp;在嵌入式系统中,如何实现压力传感器的读取?请描述相关步骤。21.&nbsp;DMA音频数据传输&nbsp;&nbsp;使用DMA进行音频数据传输的优势是什么?请说明其实现方法。22.&nbsp;软件定时器使用&nbsp;&nbsp;在FreeRTOS中,如何实现软件定时器的使用以定时执行任务?23.&nbsp;图像传输实现&nbsp;&nbsp;在嵌入式系统中,如何实现图像传输?请列出所需的协议和步骤。24.&nbsp;RTC定时事件调度&nbsp;&nbsp;如何使用RTC进行定时事件的调度?请描述配置和使用方法。25.&nbsp;内存使用监控&nbsp;&nbsp;在FreeRTOS中,如何监控内存使用情况以避免内存泄漏?26.&nbsp;USB设备识别&nbsp;&nbsp;使用USB进行设备识别和通信的基本原理是什么?请简述其工作流程。27.&nbsp;音频录制实现&nbsp;&nbsp;在嵌入式系统中,如何实现音频录制?请列出关键步骤。28.&nbsp;MQTT设备监控&nbsp;&nbsp;如何使用MQTT协议进行设备状态监控?请描述实现流程。29.&nbsp;FreeRTOS时间管理&nbsp;&nbsp;在FreeRTOS中,如何实现任务的时间管理以优化系统性能?30.&nbsp;固件安全更新机制&nbsp;&nbsp;在嵌入式系统中,如何实现固件的安全更新机制?请列出关键考虑因素。嵌入式C++面经推荐大佬面经&nbsp;&nbsp;链接在下边https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务