35pts的做法得不到35pts求助
查看原帖
35pts的做法得不到35pts求助
1012241
Dcchen楼主2024/8/6 20:41
#include<iostream>
#include<stack>
using namespace std;
int n,len,ans;
string s;
char c[2000005];
stack<char> st;
bool check(){
    for(int i=1;i<=len;i++){
    	if(st.empty())st.push(c[i]);
        else{
            if(c[i]==st.top())st.pop();
            else st.push(c[i]);
        }
	}  
    if(st.empty()) return 1;
    else{
    	while(!st.empty()){st.pop();}
    	return 0;
	}
}
int main(){
	cin>>n;
	cin>>s;
	for(int l=0;l<s.size();l++){
		for(int r=l;r<s.size();r++){
			if((r-l+1)%2==1){
				continue;
			}
			for(int i=l;i<=r;i++){
				c[i-l+1]=s[i];
			}
			len=r-l+1;
			if(check()){
				ans++;
			}
		}
	}
	cout<<ans;
}

2024/8/6 20:41
加载中...