pat 团体赛练习题集 L2-008. 最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。
输入格式:
输入在一行中给出长度不超过1000的非空字符串。
输出格式:
在一行中输出最长对称子串的长度。
输入样例:Is PAT&TAP symmetric?输出样例:
11
虽然是水题,但还是错了几遍。贴上来警示下自己。
错误原因:没考虑到对称串是偶数的情况。
//Asimple #include <bits/stdc++.h> #define INF 0xfffffff #define mod 10007 #define swap(a,b,t) t = a, a = b, b = t #define CLS(a, v) memset(a, v, sizeof(a)) #define debug(a) cout << #a << " = " << a <<endl using namespace std; inline int abs(int x) { return x<0?-x:x; } typedef long long ll; const int maxn = 1005; char str[maxn]; void solve() { int len = strlen(str); int ans = 1, cnt; for(int i=0; i<len; i++) { int in = 1, cnt = 1; while( i-in>=0 && i+in<len && str[i-in]==str[i+in] ) { in ++; cnt += 2; } ans = max(ans, cnt); in = 1, cnt = 0; while( i-in>=0 && i+in-1<len && str[i-in]==str[i+in-1] ) { in ++; cnt += 2; } ans = max(ans, cnt); } cout << ans << endl; } void input() { gets(str); solve(); } int main() { input(); return 0; }
低调做人,高调做事。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理