タイトルの説明
2つの整数シーケンスを入力してください。最初のシーケンスはスタックシーケンスを示しています。2番目のシーケンスがスタックのポップシーケンスであるかどうかを確認してください。スタックにプッシュされたすべての数値が等しくないと仮定します。
例:
シーケンス1,2,3,4,5はスタックのプッシュシーケンス、シーケンス4,5,3,2,1はスタックシーケンスに対応するポップアップシーケンスですが、4,3,5,1,2はプッシュシーケンスのポップシーケンスにすることはできません。(注:2つのシーケンスの長さは同じです)
回答コード:
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();
}
};
他に異なる意見がある場合は、メッセージを残して議論してください~~~