回文串-新华三2023笔试(codefun2000)
创始人
2024-11-15 12:39:57
0

题目链接
回文串-新华三2023笔试(codefun2000)

题目内容

给定一个长度为 n 的字符串,请你找出该字符串中最长的回文子串。
回文子串定义为满足从左往右读和从右往左读相同的字符串。

输入描述

第一行一个整数 n,表示字符串长度。
接下来一行一个长度为 n 的字符串。 1 ≤ n ≤ 1 0 4 1≤n≤10^4 1≤n≤104

输出描述

输出一行一个字符串表示最长的回文子串。

样例1

输入

6
qaqbcd

输出

qaq

提示

本题开启 Special Judge,如有多个答案输出其中一个即可。

题解1

#include using namespace std;  const int N=1e4 + 10; char s[N]; int n, dp[N]; // dp[i]表示以第i个字符结尾,且回文串包含第i个字符的最长回文串的长度   int main(){ 	scanf("%d", &n); 	scanf("%s", s + 1); 	int maxLen = 0, R = 0; // maxLen表示最长回文串的长度,R表示最长回文串的结束位置  	for(int i = 1; i <= n; i++){ 		if(i > 0 && s[i] == s[i - 1 - dp[i - 1]]) dp[i] = dp[i - 1] + 2; 		else dp[i] = 1; 		if(maxLen < dp[i]){ 			maxLen = dp[i]; 			R = i; 		} 	} 	 	for(int i = R - maxLen + 1; i <= R; i++) printf("%c", s[i]); 	printf("\n"); 	return 0; } 

相关内容

热门资讯

SpringBoot系列:通过... 文章目录前言一、简介1.1 操作日志在企业应用中的重要性1.2 使用AOP和注解实现操作日志记录的好...
解决vscode 通过Go:I... 1、背景        在搭建vscode开发环境,需要通过Go:Install/Up...
MySQL 存储过程(超详细) 一、什么是存储过程?存储过程可称为过程化SQL语言,是在普通SQL语句的...
SpringBoot 参数验证... 文章目录SpringBoot 参数验证1、为什么要进行参数验证2、验证方式2.1 if 语句判断2....
nas-群晖docker查询注... 一、遇到问题群晖里面的docker图形化界面现在不能直接查询需要下载的东西,原因可能就...
UNIX 域协议 1. UNIX域协议利用socket 编程接口实现本地进程间通信 UNIX域协议套接字:...
ardupilot开发 ---... 安能以血补天哉0. 前言1. 实践1.1 用户手册1.2 开发文档1.3 网络RTK的注入20240...
SpringMVC源码解析(二... SpringMVC源码系列文章SpringMVC源码解析(一):web容器启动流程Sp...
ChatGPT:impleme... ChatGPT:implements Serializable 有什么实际作用...
从零开始学习网络安全渗透测试之... HTTP/HTTPS抓包技术是一种用于捕获和分析网络流量的方法,它可以帮助开发者、测试...