C++课后习题训练记录Day175

1.练习项目 :

问题描述

给定一个字符串 S ,请找出 S 的一个前缀和后缀,使得它们拼接后是一个回文串。

请输出这个串的最长长度。

输入描述

输入一行包含一个字符串 S ,由小写英文字母组成。

输出描述

输出一行包含一个整数表示答案。

2.选择课程

在蓝桥云课中选择题库,选择题号17148并开始练习。

3.开始练习

(1)源码 :

#include <bits/stdc++.h>

using namespace std;

using ull=unsigned long long;

const int N=1e5+10,base=131;

ull preN,bN,sufN;

char sN;

int n,pN;

ull getpre(int l,int r)

{

return prer-prel-1*br-l+1;

}

ull getsuf(int l,int r)

{

return sufl-sufr+1*br-l+1;

}

bool check(int r)

{

ull a=getpre(1,r),b=getsuf(n-r+1,n);

return a==b;

}

int main()

{

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

cin>>s+1;

n=strlen(s+1);

b0=1;

for(int i=1;i<=n;i++){

bi=bi-1*base;

prei=prei-1*base+si;

}

for(int i=n;i>=1;i--){

sufi=sufi+1*base+si;

}

for(int i=2*n+1;i>=1;i--){

si=(i&1)?'#':si\>\>1;

}

s0='^',s2\*n+2='$';

int C=0,R=0;

for(int i=1;i<=2*n+1;i++){

pi=i<R?min(R-i,p2\*C-i):1;

while(si+p\[i]==si-p\[i])pi++;

if(i+pi>R)C=i,R=i+pi;

}

int ans=0;

for(int i=1;i<=2*n+1;i++){

int len=pi-1;

int idx=(i&1)?i-1>>1:i>>1;

int l=(i&1)?idx-len/2:idx-(len+1)/2;

int r=(i&1)?idx+len/2+1:idx+(len+1)/2;

if(check(l))

ans=max(ans,2*l+len);

if(check(n-r+1))

ans=max(ans,2*(n-r+1)+len);

}

cout<<ans<<'\n';

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:

注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。

相关推荐
2601_966949652 分钟前
从轮询到策略消费:量化系统如何高效处理五档盘口数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
莫生灬灬3 分钟前
灵码 LingBuilder:用中文写代码,确定性生成真实 C++ 工程(开源)
c++·开源·mfc
浅念-4 分钟前
C++ Protobuf 入门实战:基于通讯录项目吃透proto3语法与序列化
linux·服务器·网络·c++·protobuf·proto·proto3
我命由我1234530 分钟前
人脸识别 - 去重时间窗口
java·开发语言·python·学习·java-ee·学习方法·python3.11
落魄大学生之流水线上谋生计1 小时前
Java并发核心机制详解:线程池、CAS、AQS、锁升级
java·开发语言·数据库
hahaha60161 小时前
HLS高层次综合设计技巧--数组
开发语言·嵌入式硬件·算法·fpga开发
佳児素花痴╮1 小时前
Qt速通2
开发语言·qt
“AI国潮设计-小江”2 小时前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁英歌舞猫IP & 创意甜品设计(附ComfyUI工作流与商业授权说明)
开发语言·人工智能·python·prompt·aigc
529宝宝起名网2 小时前
用 Python 分析汉字字源与起名用字的关联规律:从六书结构到文化寓意的起名偏好洞察
开发语言·python
汉克老师2 小时前
CSP-J 初赛(以满分为目标):第三十九课《数学与逻辑②——阶乘、排列数与组合数:公式到底从哪里来?》
c++·csp-j·小学生·学c++编程