求调25pts,RE+WA
查看原帖
求调25pts,RE+WA
735235
hmwzd1314楼主2024/8/22 14:01
#include<bits/stdc++.h>

using namespace std;
string s;
stack<char>num;
int ans1,ans2;
int main()
{
	cin>>s;
	int len=s.size();
	for(int i=0;i<len;i++)
	{
		if(s[i]=='0'||s[i]=='1')num.push(s[i]);
		else if(s[i]=='|')
		{
			if(num.top()=='1')
			{
				while(1)
				{
					i++;
					if(s[i]=='(')
					{
						while(1)
						{
							i++;
							if(s[i]==')')break;
						}
					}
					if(s[i]=='|'||s[i]==')')break;
				}	
				i--;
				ans2++;
			}
			else num.pop();
		}
		else if(s[i]=='&')
		{
			if(num.top()=='0')
			{
				while(1)
				{
					i++;
					if(s[i]=='(')
					{
						while(1)
						{
							i++;
							if(s[i]==')')break;
						}
					}
					if(s[i]=='|'||s[i]=='&'||s[i]==')')break;
				}
				i--;
				ans1++;
			}
			else num.pop();
		}
	}
	cout<<num.top()<<"\n"<<ans1<<" "<<ans2;
	return 0;
}
2024/8/22 14:01
加载中...