当前位置: 首页 > news >正文

LeetCode 131 分割回文串

给你一个字符串 s,请你将 s 分割成一些 子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。

示例 1:

输入:s = "aab"

输出:[["a","a","b"],["aa","b"]]

示例 2:

输入:s = "a"

输出:[["a"]]

提示:

1 <= s.length <= 16

s 仅由小写英文字母组成

Python代码:

from typing import Listclass Solution:def partition(self, s: str) -> List[List[str]]:result = []n = len(s)def is_palindrome(i: int, j: int) -> bool:"""判断s[i..j](闭区间)是否为回文串"""while i < j:if s[i] != s[j]:return Falsei += 1j -= 1return Truedef backtrack(start: int, current_path: List[str]) -> None:"""递归回溯函数start: 当前分割的起始索引current_path: 已收集的回文子串列表"""# 终止条件:已分割完整个字符串if start == n:result.append(current_path.copy())  # 复制当前路径,避免后续修改影响结果return# 尝试从start到end的所有可能子串for end in range(start, n):# 若s[start..end]是回文串,则加入路径并继续分割剩余部分if is_palindrome(start, end):current_path.append(s[start:end+1])  # 加入当前回文子串backtrack(end + 1, current_path)     # 递归处理剩余部分current_path.pop()                   # 回溯:移除最后加入的子串# 从索引0开始,初始路径为空backtrack(0, [])return result

http://www.xdnf.cn/news/1464607.html

相关文章:

  • 【LeetCode热题100道笔记】删除链表的倒数第 N 个结点
  • Kafka核心原理与常见面试问题解析
  • 《AI 问答系统:从开发到落地,关键技术与实践案例全解析》
  • 【技术教程】如何将文档编辑器集成至基于Java的Web应用程序
  • c++工程如何提供http服务接口
  • 基于 GEE 批量下载 Landsat8 地表温度(LST)数据
  • 【计算机科学与应用】砚文化虚拟博物馆的Unity3D设计
  • 理解损失函数:机器学习的指南针与裁判
  • 踩坑实录:Django继承AbstractUser时遇到的related_name冲突及解决方案
  • 【Flask】测试平台中,记一次在vue2中集成编辑器组件tinymce
  • XR数字融合工作站打造智能制造专业学习新范式
  • windows通过xrdp远程连接Ubuntu黑屏问题解决
  • FDTD_3 d mie_仿真
  • 计算机毕设选题:基于Python数据挖掘的高考志愿推荐系统
  • AI+消费,阿里的新故事很性感
  • 新后端漏洞(上)- Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)
  • sub3G、sub6G和LB、MB、HB、MHB、LMHB、UHB之间的区别和联系
  • STM32——WDG看门狗
  • Typer 命令行工具使用示例
  • SQL Server全链路安全防护
  • 【Python】QT(PySide2、PyQt5):点击不同按钮显示不同页面
  • 中天互联:AI 重塑制造,解锁智能生产新效能​
  • [网鼎杯 2020 青龙组]AreUSerialz
  • Excel数据导出小记二: [大数据示例]
  • JP4-7-MyLesson后台前端(一)
  • yolov8部署在一台无显卡的电脑上,实时性强方案
  • 【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件
  • 探讨Xsens在人形机器人研发中的四个核心应用
  • 产线相机问题分析思路
  • 基于单片机的六足机器人控制系统设计