C++
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pushV int整型vector * @param popV int整型vector * @return bool布尔型 */ bool IsPopOrder(vector<int>& pushV, vector<int>& popV) { // write code here // !!辅助栈temp,popV下标j // 1. 访问pushV并记录在tempV中,直至temp.top=popV[j] // 2. 弹出temp.top,popV下标j++, // 若与temp.top相等,则继续弹出;否则重复1 // 3. 若遍历完pushV,且temp为空,则true;否则false int n = pushV.size(); stack<int> temp; int j = 0; // popV下标 for (int i=0; i<n; i++) { temp.push(pushV[i]); while (temp.size() && temp.top()==popV[j]) { // 两个顺序不能换哦 temp.pop(); j++; } } return temp.empty(); } };
举一反三: