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

LeetCode-热题100:131. 分割回文串

题目描述

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

示例 1:

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

示例 2:

输入: s = “a”
输出: [[“a”]]

提示:

  • 1 <= s.length <= 16
  • s仅由小写英文字母组成

代码及注释

func partition(s string) [][]string {// 初始化结果集和当前路径res, path := make([][]string, 0), make([]string, 0)// 定义深度优先搜索函数var dfs func(s string, pos int)dfs = func(s string, pos int) {// 如果已经遍历到字符串的末尾,将当前路径添加到结果集中if pos == len(s) {tmp := make([]string, len(path))copy(tmp, path)res = append(res, tmp)return}// 遍历字符串,查找回文子串for i := pos; i < len(s); i++ {str := s[pos : i+1]// 如果找到回文子串,将其添加到路径中,继续搜索if isPalindrome(str) {path = append(path, str)dfs(s, i+1)// 回溯,将当前回文子串从路径中移除path = path[:len(path)-1]}}}// 开始深度优先搜索dfs(s, 0)// 返回结果集return res
}// 判断字符串是否为回文串
func isPalindrome(s string) bool {left, right := 0, len(s)-1for left < right {if s[left] != s[right] {return false}left++right--}return true
}
http://www.lryc.cn/news/324049.html

相关文章:

  • 常用相似度计算方法总总结
  • 【漏洞复现】WordPress Plugin NotificationX 存在sql注入CVE-2024-1698
  • AI新工具(20240322) 免费试用Gemini Pro 1.5;先进的AI软件工程师Devika;人形机器人Apptronik给你打果汁
  • 鬼灭之刃-激情台词-02(解释来自文心一言)
  • openssl3.2 - exp - aes-128-cbc
  • 基于docker+rancher部署Vue项目的教程
  • Elasticsearch:让你的 Elasticsearch 索引与 Python 和 Google Cloud Platform 功能保持同步
  • 如何定位web前后台的BUG
  • 谈谈 IOC 和 AOP
  • C/C++之内存旋律:星辰大海的指挥家
  • Linux下进程的调度与切换
  • Linux相关命令(2)
  • React中 类组件 与 函数组件 的区别
  • GPT实战系列-智谱GLM-4的模型调用
  • AndroidStudio开发 相关依赖
  • Zookeeper详解(zk)
  • BSD-3-Clause是一种开源软件许可协议
  • 持续集成平台 02 jenkins plugin 插件
  • LoadBalancerCacheManager not available, returning delegate without caching
  • 机器学习金融应用技术指南
  • ES6生成器(Generator)
  • 大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 并训练自己的数据集
  • 【No.13】蓝桥杯二分查找|整数二分|实数二分|跳石头|M次方根|分巧克力(C++)
  • 【蓝桥杯-单片机】基于定时器的倒计时程序设计
  • QT:三大特性
  • 无服务器推理在大语言模型中的未来
  • 【linux】CentOS查看系统信息
  • 部署dagu_1.12.10+replicadb0.15.1+sqlline1.12
  • 基于Java中的SSM框架实现社会保险管理系统项目【项目源码+论文说明】
  • 24计算机考研调剂 | 江西理工大学