题目描述:
给你一个字符串 s
,找到 s
中最长的 回文子串
输入输出实例:
思路:对于这道题目,我们首先考虑以下长度只有一的时候,直接返回就好了;如果长度>=2,我们可以依次增加长度,找到每个长度对应的回文子串,然后把最长的那个返回就好了;然后我们就把思路放在对于每个长度我们怎么判断他是不是回文序列,如果是的话,那他应该第一个和最后一个字符相同,比如我现在要求长度为三的回文序列,那我首先要判断的就是s[i]到s[i+2]的值是不是相等,如果相等我们判断s[i+1]到s[i+2-1]是不是回文就好了,判断结束后,我们可以确定这个长度为三的是不是回文序列,如果是我们标识即可。最后输出的时候将更新的起始下标开始输出最长长度的几个字符即可。这是运用了动态规划的思想,针对以上,我们可以有以下代码: