6 solutions

  • 4
    @ 2024-3-15 14:59:01
    枚举奇偶,向两边扩张
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	string s;
    	getline(cin,s);
    	int res=0;
    	for(int i=0;i<s.size();i++)
    	{
    		int l=i-1,r=i+1; //回文串长度是奇数的情况 
    		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; 
    		res=max(res,r-l-1);
    		l=i,r=i+1;       //回文串长度是偶数的情况 
    		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++;
    		res=max(res,r-l-1);
    	}
    	cout<<res;
    	return 0;
    }
    
    • 3
      @ 2026-4-25 12:00:21
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
      	string s;
      	cin>>s;
      	int res=0;
      	for(int i=0;i<s.size();i++)
      	{
      		for(int j=i;j<s.size();j++)
      		{
      			string s1=s.substr(i,j-i+1);
      			string s2=s1;
      			reverse(s2.begin(),s2.end());
      			if(s1==s2)
      			{
      				res=max(res,(int)s2.size());
      			}
      		}
      	}
      	cout<<res;
      	return 0;
      }
      ****
      
      • 1
        @ 2025-3-30 15:18:50
        #include<bits/stdc++.h>
        using namespace std;
        int main()
        {
        	string s;
        	getline(cin,s);
        	int res=0;
        	for(int i=0;i<s.size();i++)
        	{
        		int l=i-1,r=i+1; 
        		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; 
        		res=max(res,r-l-1);
        		l=i,r=i+1;       
        		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++;
        		res=max(res,r-l-1);
        	}
        	cout<<res;
        	return 0;
        }
        
        
        • 0
          @ 2026-7-8 15:11:58
          #include<bits/stdc++.h>
          using namespace std;
          string s[1010];
          int main()
          {
              string a;
              cin>>a;
              int mx=1;
              int n=a.size();
              for(int i=1;i<=n;i++) s[i]=a[i-1];
              for(int i=1;i<=n;i++){
                  for(int j=i;j<=n;j++){
                      bool b=1;
                      for(int l=0;l<=(j-i)/2;l++){
                          if(s[i+l]!=s[j-l]){
                              b=0;
                              break;
                          }
                      }
                      if(b) mx=max(mx,j-i+1);
                  }
              }
              cout<<mx;
              return 0;
          }
          
          • 0
            @ 2026-5-23 11:19:01
            #include<bits/stdc++.h>
            using namespace std;
            int main()
            {
            	string s;
            	getline(cin,s);
            	int res=0;
            	for(int i=0;i<s.size();i++)
            	{
            		int l=i-1,r=i+1; 
            		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; 
            		res=max(res,r-l-1);
            		l=i,r=i+1;       
            		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++;
            		res=max(res,r-l-1);
            	}
            	cout<<res;
            	return 0;
            }
            • 0
              @ 2026-5-5 16:29:15
              枚举奇偶,向两边扩张
              #include<bits/stdc++.h>
              using namespace std;
              int main()
              {
              	string s;
              	getline(cin,s);
              	int res=0;
              	for(int i=0;i<s.size();i++)
              	{
              		int l=i-1,r=i+1; //回文串长度是奇数的情况 
              		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; 
              		res=max(res,r-l-1);
              		l=i,r=i+1;       //回文串长度是偶数的情况 
              		while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++;
              		res=max(res,r-l-1);
              	}
              	cout<<res;
              	return 0;
              }
              
              
              • 1

              Information

              ID
              79
              Time
              1000ms
              Memory
              256MiB
              Difficulty
              3
              Tags
              # Submissions
              119
              Accepted
              40
              Uploaded By