不是我修改了好几遍一直在错,下载了一个数据点发现我的输出和样例输出一样,有没有大佬指导一下谢谢。
#include<bits/stdc++.h>
using namespace std;
const int N=1500001;
int T,x[1500001],y[1500001],l1,l2,l;
string s1,s2;
void dfs(string s,int f[]){
int cnt=1;
for(int i=0;i<s.size();i++){
if(s[i]=='(') cnt++;
else{
cnt--;
if(s[i-1]=='('){
int k=cnt;
f[k]++;
while(f[k]>=2){
f[k]=0;
f[k+1]++;
}
}
}
}
}
int cmp(int a[],int b[]){
for(int i=N;i>=1;i--){
if(a[i]>b[i]) return 2;
if(a[i]<b[i]) return 0;
}
return 1;
}
int main(){
scanf("%d",&T);
while(T--){
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
l1=0,l2=0,l=1;
cin>>s1>>s2;
dfs(s1,x);
dfs(s2,y);
int pd=cmp(x,y);
if(pd==0) printf("<\n");
if(pd==1) printf("=\n");
if(pd==2) printf(">\n");
}
return 0;
}
解决必关