2 solutions

  • 0
    @ 2025-3-15 9:38:33

    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;
    }
    
    • 0
      @ 2025-3-15 9:07:24
      #include<bits/stdc++.h>
      using namespace std;
      const int N=110;
      int f[N][N];//f[i][j]表示把区间i到j变成合法括号匹配的最少操作次数
      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-1],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;
      }
      
      • 1

      Information

      ID
      1442
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      7
      Tags
      (None)
      # Submissions
      17
      Accepted
      4
      Uploaded By