题目汇总:
9. 回文数(整型转字符串)
5. 最长回文子串(动态规划)
680. 验证回文字符串 Ⅱ(左右指针)
一 数字类型回文串
1、9. 回文数
1)问题描述

整型回文串判断
2)思路:
借助带余除法从个位提取整型数据各位数字,再反转数字整合在一起,最后和输入数据进行比对。

具体代码
(类似技巧题目:leetcode 7 整数反转,需要考虑反转后溢出情况)
二、字符串回文排列题
1、266. 回文排列
1)问题描述

字符串回文排列
2)思路:
建立哈希映射map_array[26],把字符串的各个字符映射到数组特定下标,数组中各下标对应的值为该下标(字符)出现的次数。根据回文串的特点,只要满足数组中各元素的值最多只有一个奇数即可。
2、5. 最长回文子串
1)问题描述

求字符串最长回文子串

约束
2)思路:
(1)动态规划

动态规划分析
核心代码

该算法时间复杂度为,状态总数为
,每一状态需要转移的时间为
.
空间复杂度。
(2)中新扩展法
遍历字符串,假定遍历的元素是回文中心,并向两端进行扩展。
核心代码(C编写)

中心扩展法
该算法时间复杂度为,每个回文中心最多向外扩展
次。
空间复杂度为
(3)Manacher算法(马拉车算法)
核心思想:
在中心扩散法基础上进行优化,充分利用每次遍历的结果,预测未遍历元素若作为回文中心,可能达到的长度。这样的好处是充分利用已经遍历过的信息,把时间复杂度降为线性级别。(像类似的还有KMP算法)
假设字符串s构成回文串,s[center]为串s的回文中心,利用字符串元素关于回文中心对称性特点,来判断s[i]右侧元素若作为回文中心,可能达到的长度。
理解:https://www.cxyxiaowu.com/2665.html

马拉车算法大致思路
部分代码

字符串预处理

马拉车算法核心

返回结果
3、680. 验证回文字符串 Ⅱ
1)问题描述

验证回文串字符问题描述
2)思路
从两侧往中间收缩判断,遇到不符合情况,枚举可能性。
3)代码实现


回文串字符代码实现