求解?为什么一分都木有/(ㄒoㄒ)/~~

P1944 最长括号匹配

```cpp #include <bits/stdc++.h> using namespace std; string s; int p=0; int maxx=0; int ans=0; char a[2000000]; int top=0; int main() { cin>>s; int i=0; ans=0; while(i<s.size()){ if(s[i]=='('||s[i]=='['){ top++; a[top]=s[i]; } if(s[i]==')'||s[i]==']'){ if(top==0){ i++; ans=0; continue; } else{ if(a[top]=='('){ if(s[i]==')'){ ans=ans+2; top--; if(ans>maxx){ maxx=ans; p=i-ans+1; } } else{ top=0; ans=0; } } else if(a[top]=='['){ if(s[i]==']'){ ans=ans+2; top--; if(ans>maxx){ maxx=ans; p=i-ans+1; } } else{ top=0; ans=0; } } } } i++; } for(int i=1;i<=top;i++){ p--; maxx-=2; } for(int i=p;i<p+maxx;i++){ cout<<s[i]; } return 0; } ``` 我也一个点都没有,不知道为什么。。。
by 杨柏涵 @ 2019-03-24 16:42:05


``` #include<iostream> #include<cstring> using namespace std; string str; int sta,en,dp[1000005],len; int main() { int i,Max=0,Max_len; cin>>str; len=str.length(); for(i=1;i<=len-1;i++) { if((str[i]==')'&&str[i-dp[i-1]-1]=='(')||(str[i]==']'&&str[i-dp[i-1]-1]=='[')) { dp[i]=dp[i-1]+dp[i-dp[i-1]-2]+2; } if(dp[i]>Max) { Max=dp[i]; en=i; } } sta=en-Max+1; for(i=sta;i<=en;i++)cout<<str[i]; return 0; } ``` 我A了
by Lucas2024 @ 2023-03-18 19:38:08


|