2 条题解

  • 2
    @ 2024-7-28 9:01:05
    #include<iostream>
    #include<string.h>
    using namespace std;
    string a;
    char calc(char s)
    {
    	if(s>=97)
    		s-=32;
    	return s;
    }
    bool flag(char s)
    {
    	if((s>='a'&&s<='z')||(s>='A'&&s<='Z')) return true;
    	return false;
    }
    int main()
    {
    	getline(cin,a);
    	int len=a.size();
    	int l=0,r=0;
    	int maxx=0;
    	for(int i=0;i<len;i++)
    	{
    		if(flag(a[i]))
    		{
    			for(int j=i+1;j<len;j++)
    			{
    				if(calc(a[i])==calc(a[j]))
    				{
    					int idl=i,idr=j;
    					while(idl<=idr)
    					{
    						char ls,rs;
    						ls=calc(a[idl]);
    						rs=calc(a[idr]);
    						if(ls!=rs||!flag(ls)) break;
    						idl++;
    						while(!flag(a[idl])&&idl<=idr) idl++;
    						idr--;
    						while(!flag(a[idr])&&idl<=idr) idr--;
    					}
    					if(idl>idr&&maxx<j-i+1)
    					{
    						maxx=j-i+1;
    						l=i,r=j;
    					}
    				}
    			}
    		}
    	}
    	for(int i=l;i<=r;i++) cout<<a[i];
    	return 0;
    }
    
    • 1
      @ 2026-5-24 19:43:32

      #include<bits/stdc++.h> using namespace std; string a; char calc(char s) { if(s>=97) s-=32; return s; } bool flag(char s) { if((s>='a'&&s<='z')||(s>='A'&&s<='Z')) return true; return false; } int main() { getline(cin,a); int len=a.size(); int l=0,r=0; int maxx=0; for(int i=0;i<len;i++) { if(flag(a[i])) { for(int j=i+1;j<len;j++) { if(calc(a[i])==calc(a[j])) { int idl=i,idr=j; while(idl<=idr) { char ls,rs; ls=calc(a[idl]); rs=calc(a[idr]); if(ls!=rs||!flag(ls)) break; idl++; while(!flag(a[idl])&&idl<=idr) idl++; idr--; while(!flag(a[idr])&&idl<=idr) idr--; } if(idl>idr&&maxx<j-i+1) { maxx=j-i+1; l=i,r=j; } } } } } for(int i=l;i<=r;i++) cout<<a[i]; return 0; }

      • 1

      信息

      ID
      1178
      时间
      1000ms
      内存
      128MiB
      难度
      3
      标签
      递交数
      84
      已通过
      47
      上传者