#include<iostream>
#include<string>
using namespace std;
string s;
int main(){
int _xor;
int left;
int right;
cin>>s;
s = "(" + s + ")";
while(1){
left = -1;
right = -1;
_xor = -1;
for(int i = 0; i < s.size(); i++){
if(s[i] == '(') left = i;
else if(s[i] == ')'){
right = i;
break;
}
}
for(int i = left; i <= right; i++){
if(_xor != -1 && s[i] != 'x') {
if(_xor-left >= i-_xor){
s = s.substr(0,_xor) + s.substr(i,s.size() - i );
right = right - (i - _xor );
i = i - (i - _xor );
_xor = -1;
}
else {
s = s.substr(0,left+1) + s.substr(_xor+1,s.size() - _xor - 1);
right = right - (_xor - left );
i = i - (_xor - left ) ;
_xor = -1;
}
}
if(s[i] == '|') _xor = i;
}
if(right == s.size() - 1){
s = s.substr(0,left) + s.substr(left+1, right - left - 1);
break;
}
else
s = s.substr(0,left) + s.substr(left+1, right - left - 1) + s.substr( right + 1, s.size() - right - 1) ;
}
cout<<s.size()<<endl;
}
蓝桥杯正则问题 究竟什么数据不对 为啥测试过不了 求大神解答
最新推荐文章于 2021-12-04 16:48:41 发布