2 solutions
-
0
bug
#include <bits/stdc++.h> using namespace std; const int N=110; int f[N][N]; bool check(char l,char r) { if(l=='('&&r==')') return true; if(l=='['&&r==']') return true; return false; } int main() { string s; cin>>s; int n=s.size(); for(int i=0;i<n;i++) { f[i][i]=1; } for(int len=2;len<=n;len++) { for(int l=0;l+len-1<n;l++) { int r=l+len-1; f[l][r]=len; if(check(s[l],s[r])) f[l][r]=f[l+1][r-1]; f[l][r]=min(f[l][r],min(f[l][r],f[l+1][r])+1); for(int k=l;k<r;k++) { f[l][r]=min(f[l][r],f[l][k]+f[k+1][r]); } } } cout<<f[0][n-1]<<endl; return 0; }
Information
- ID
- 1442
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- (None)
- # Submissions
- 17
- Accepted
- 4
- Uploaded By