5 solutions

  • 6
    @ 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;
    }
    
    • 1
      @ 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-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
            110
            Accepted
            36
            Uploaded By