讨论/技术交流/寻找给定字符串最长回文子串/
寻找给定字符串最长回文子串

题库地址:https://leetcode-cn.com/problems/longest-palindromic-substring/
这道题目很困惑
245731612840410_.pic.jpg
图一

245681612840367_.pic.jpg
图二

图一中最长回文子串为cccc,为何到图二最长回文子串 竟然为aca呢?

1
共 6 个回复

首先是要有俩条件:子串,回文,回文是指正序和反序输出都相等,简单理解就是长度为n的一个字符串A第0个元素和第n-1个元素相等:A[0]==A[n-1]且一直到n/2的位置都一直满足,所以在子串里你要满足

for(int k=0;k<n/2;k++)
A[k]==A[n-k-1];

很明显aacak!=accab
你代码运行出那个cccc是因为测试用例的特殊性。

1

因为 acaaca 是回文的子串中长度最长的。那你觉得第二个用例的输出应该是什么?

1

回文算法
关注一下。回文算法文章。

回文的意思就是,正着读和反着读是一样的,像anna,安娜这种姓名就是典型的回文结构。

因为aacab!=aacak

你理解什么是回文了吗