
求解
错误代码:
#include
using namespace std;
int main(){
string a;
cin>>a;
for(int i=0;iif(a[i]=='&'){
if(a[i-2]=='('&&a[i+2]==')'){
continue;
}
for(int j=i;j>=0;j--){
if(a[j-1]=='|'||j==0||a[j]=='('){
a.insert(j,"(");
break;
}
}
a.insert(i+3,")");
i++;
}
if(a[i]=='|'){
if(a[i-2]=='('&&a[i+2]==')'){
continue;
}
for(int j=i;j>=0;j--){
if(j==0||a[j]=='('){
a.insert(j,"(");
break;
}
}
if(a[i+3]!='&'){
a.insert(i+3,")");
}
for(int j=i;j<=a.size();j--){
if(a[j+1]=='|'||j==a.size()||a[j]==')'){
a.insert(j,")");
break;
}
}
}
}
stack q;
int ans1=0,ans2=0;
for(int i=0;iif(a[i]=='('){
q.push(i);
i++;
continue;
}
if(a[i]==')'){
int y=q.top();
string w=a.substr(y+1,i-1);
int t1=w[0]-'0',t2=w[2]-'0',t4;
char t3=w[1];
if(t3=='&'&&t1==0){
ans1++;
}
if(t3=='|'&&t1==1){
ans2++;
}
if(t3=='&'){
t4=t1&t2;
}
else
t4=t1|t2;
a.erase(y,i+1);
char u=t4+'0';
string t="";
t=t+u;
a.insert(y,t);
i=y;
}
}
cout<' '<