大厂高频面试系列03-最长回文子串问题(LeetCode)
题目描述:
给定一个字符串S,找出S中最长的回文子串。
举例:
输入:”babad”
输出:”bab”
注意:”aba”也是一个有效的答案,输出一个答案即可。
题目难度:★★
题目分析:
本题的难点有两个:一是如何列举出一个字符串中的子串;二是如何判断一个子串是否是回文子串,并且这个回文子串还是最长的那一个。解决了这两个问题,本题就迎刃而解了。
对于第一个问题,最常用的解法是利用一个长度可变的滑块,该滑块从字符串的最左端开始向右滑动,每滑动一个字符的位置就得到一个子串。当滑块滑动到字符串的尾部时,就可以列举出该滑块长度下所有的子串。如图(1)所示。