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

131. 分割回文串

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

示例:
输入:s = “aab”
输出:[[“a”,“a”,“b”],[“aa”,“b”]]

解题思路:
这道题还是通过回溯的方法暴力枚举所有可能的分割情况。当分割起点=字符串s的长度时,就是收获结果的时候。
对于每层递归,我们去遍历所有可能的分割点,然后判断起始点到分割点的子串是否是回文串,如果是则可以将子串加入path并继续往下分割。

class Solution {private List<List<String>> result = new ArrayList<>();private List<String> path = new ArrayList<>();public List<List<String>> partition(String s) {backtrack(s, 0);return result;}private void backtrack(String s, int startIdx){if(startIdx == s.length()){result.add(new ArrayList<>(path));return;}for(int i = startIdx; i < s.length(); i++){if(isHuiWen(s, startIdx, i)){path.add(s.substring(startIdx, i + 1));backtrack(s, i + 1);path.removeLast();}}}private boolean isHuiWen(String s, int left, int right){while(left < right){if(s.charAt(left) != s.charAt(right)){return false;}left++;right--;}return true;}
}

相关文章:

  • 人工智能-基础篇-4-人工智能AI、机器学习ML和深度学习DL之间的关系
  • 【STM32CubeMX】ST官网MCU固件库下载及安装
  • 人工智能-基础篇-2-什么是机器学习?(ML,监督学习,半监督学习,零监督学习,强化学习,深度学习,机器学习步骤等)
  • 论软件系统架构评估及其应用
  • springBoot+liquibase+hibernate支持各种国产数据库
  • 2025年智能营销产品发展和应用趋势
  • WPS JS宏4-3 匿名函数(简化函数方法-1)学习笔记
  • Spring Boot 项目实训 - 图书信息网站
  • Linux journal 日志大小限制与管理详解
  • 【SpringAI篇03】:聊天记录持久化(仍保留上下文)
  • 数据库单条sql优化
  • Vue3 + Element Plus Transfer 穿梭框自定义分组
  • Dubbo服务调用超时问题解决方案
  • C++基础:动态内存分配、输入输出与命名空间详解
  • 专注搜索引擎优化的专业模板平台
  • 虚拟房产炒作是否触发“非法经营罪”?
  • OpenCV模版匹配方法的衡量指标比较
  • 三大WPF MVVM框架对比:MVVMLight、CommunityToolkit.Mvvm 与 Prism
  • OpenDeepWiki:AI代码对话新纪元
  • [Meetily后端框架] 配置指南 | 后端API网关 | API文档体系