#include<iostream>
#include<stack>
using namespace std;
void Judge(int s[], int target[],int k)
{
stack<int>mystack;
int i = 0, j = 0;
int count = 0; //count用于记录遍历情况
while (i<k)
{
while (s[i]!=target[j]) //在入栈过程中
{
mystack.push(s[i]);
i++;
}
i++;
j++;
count++;
}
while (j < k) //此时i=k-1,说明已经入栈完毕,考虑出栈
{
if (mystack.top() == target[j])
{
mystack.pop();
j++;
count++;
}
else
{
cout << "Wrong!" << endl;
return;
}
}
if (count == k)
{
cout << "Right!" << endl;
return;
}
}
int main()
{
int k;
int s[100], target[100];
cin >> k;
for (int i = 0; i < k; i++)
{
cin >> s[i];
}
for (int i = 0; i < k; i++)
{
cin >> target[i];
}
Judge(s, target, k);
return 0;
}
栈:判断出栈合法性
最新推荐文章于 2024-06-07 15:51:57 发布