Hot100:分割回文串(Palindrome Partitioning)回溯 + 回文预处理 ACERS 解析

副标题 / 摘要 131. 分割回文串 的难点不是递归本身,而是两个问题要同时想清楚:当前切到了哪里,以及一个候选片段是不是回文。把这两件事拆开,你就能得到“回溯枚举 + 回文表预处理”的稳定写法。 预计阅读时长:15~18 分钟 标签:Hot100、回溯、字符串、回文、DP SEO 关键词:Palindrome Partitioning, 分割回文串, 回溯, 回文预处理, DP 元描述:通过 LeetCode 131 理解字符串分割型回溯与回文区间预处理,掌握“先判合法片段,再递归切后缀”的题目模型。 A — Algorithm(题目与算法) 题目还原 给定一个字符串 s,请把它切分成若干个子串,使得每个子串都是回文串,并返回所有可能的切分方案。 输入输出 名称 类型 描述 s string 只包含小写英文字母的字符串 返回 string[][] 所有合法的回文切分方案 示例 1 输入:s = "aab" 输出:[["a","a","b"],["aa","b"]] 示例 2 输入:s = "a" 输出:[["a"]] 约束 1 <= s.length <= 16 s 仅由小写英文字母组成 目标读者 已经学过 78/90 这类数组回溯,准备进入“字符串切分型回溯”的学习者 会写递归,但总把“切分位置”和“合法性检查”搅在一起的开发者 想掌握“先预处理合法区间,再枚举切分”的工程迁移套路的读者 背景 / 动机 这题非常适合帮你建立一种更通用的模型: 先判断哪些区间是合法片段,再递归地把整个串切完。 如果你只是把它看成“回文题”,容易只盯着 isPalindrome()。 但如果你把它看成“字符串分割题”,就会更清楚它的结构: ...

2026年4月19日 · 10 分钟 · map[name:Jeanphilo]

Hot100:回文链表(Palindrome Linked List)快慢指针 + 反转后半段 O(1) 空间 ACERS 解析

副标题 / 摘要 回文链表的核心是“对称比较”,但单链表不能从尾部往前走。最稳的工程化解法是:快慢指针找中点 -> 原地反转后半段 -> 比较 -> 再反转恢复结构,做到 O(n) 时间、O(1) 额外空间且不破坏链表。 预计阅读时长:10~14 分钟 标签:Hot100、链表、快慢指针、原地反转 SEO 关键词:回文链表, Palindrome Linked List, O(1) 空间, 快慢指针, 反转后半段, LeetCode 234 元描述:快慢指针定位中点,反转后半段与前半段逐一比较,最后恢复链表结构;O(n)/O(1) 判断单链表是否回文。 A — Algorithm(题目与算法) 题目还原 给你一个单链表的头节点 head,请你判断该链表是否为回文链表: 如果是回文,返回 true;否则返回 false。 输入输出 名称 类型 描述 head ListNode 单链表头结点 返回 bool 是否为回文 示例 1 输入: 1 -> 2 -> 2 -> 1 输出: true 示例 2 输入: 1 -> 2 输出: false 目标读者 刷 Hot100,想掌握“链表中点 + 原地反转”组合拳的学习者 面试中经常遇到“回文/对称/镜像”类题的开发者 关注空间效率、且需要保证数据结构不被破坏的工程实践者 背景 / 动机 在数组里判断回文很简单:左右指针向中间收缩即可。 但在单链表里,你只能顺着 next 单向走,无法从尾部回看,这就让“对称比较”变得不那么直接。 ...

2026年2月1日 · 11 分钟 · map[name:Jeanphilo]