求助P1210
  • 板块灌水区
  • 楼主Charlie_Nine
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/4 17:03
  • 上次更新2025/1/4 21:16:39
查看原帖
求助P1210
1349424
Charlie_Nine楼主2025/1/4 17:03
#include<bits/stdc++.h>
using namespace std;
string ans,s_y,s_sr,s_x;
int ans_cd,ans_zxb,ans_yxb;
char dzx(char c){
	if(c>='A'&&c<='Z'){
		return c+'a'-'A';
	}
	return c;
}
int main(){
	while(getline(cin,s_sr)){
		s_y+=s_sr;
		s_y+='\n';
	}
	for(int i=0;i<s_y.size();i++){
		s_x+=dzx(s_y[i]);
	}
	for(int i=1;i<s_x.size();i++){
		if(s_x[i]!=s_x[i+1])
			break;
		int cd=2,zxb=i-1,yxb=i+2;
		for(;;zxb--,yxb++){
			while(!(s_x[zxb]>='a'&&s_x[zxb]<='z')){
				zxb--;
				if(zxb<=0){
					break;
				}
			}
			while(!(s_x[yxb]>='a'&&s_x[yxb]<='z')){
				yxb++;
				if(yxb>=s_x.size()){
					break;
				}
			}
			if(s_x[zxb]==s_x[yxb]){
				cd+=2;
			}else{
				break;
			}
			if(ans_cd<cd){
				ans_cd=cd;
				ans_zxb=zxb;
				ans_yxb=yxb;
			}
		}
	}
	for(int i=1;i<s_x.size();i++){
		int cd=1,zxb=i-1,yxb=i+1;
		for(;;zxb--,yxb++){
			while(!(s_x[zxb]>='a'&&s_x[zxb]<='z')){
				zxb--;
				if(zxb<=0){
					break;
				}
			}
			while(!(s_x[yxb]>='a'&&s_x[yxb]<='z')){
				yxb++;
				if(yxb>=s_x.size()){
					break;
				}
			}
			if(s_x[zxb]==s_x[yxb]){
				cd+=2;
			}else{
				break;
			}
			if(ans_cd<cd){
				ans_cd=cd;
				ans_zxb=zxb;
				ans_yxb=yxb;
			}
		}
	}
	cout<<ans_cd<<"\n";
	for(int i=ans_zxb;i<=ans_yxb;i++){
		cout<<s_y[i];
	}
	return 0;
}

WA on #3

2025/1/4 17:03
加载中...