2025-3-2 leetcode刷题情况(回溯算法--分割)

一、131.分割回文串

1.题目描述

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

2.代码

3.思路

首先构建列表,一个二维列表存储满足所有条件的分割方案,一个一维列表存储当前的分割方案。

partition 方法是对外的接口,主要调用下面的backtracking 方法,backtracking 方法开始回溯搜索,初始的起始位置 start 为 0,表示从字符串的第一个字符开始尝试分割,同时传入一个空的 StringBuilder 用于构建子串。

backtracking 方法

  • 判断终止条件:遍历完整个字符串,此时 cur 中存储的分割方案满足每个子串都是回文串的条件,将 cur 的副本添加到 res 列表中,然后返回,结束当前递归分支。
  • 遍历字符串:不断将字符添加到 StringBuilder,调用 check 方法检查当前构建的子串是否为回文串。将其添加到 cur 列表中,表示选择该子串作为当前分割方案的一部分。递归调用 backtracking 方法,继续尝试从下一个位置开始分割字符串,同时传入一个新的 StringBuilder 用于构建下一个子串。递归调用返回后,撤销之前的选择,将 cur 列表中最后一个元素移除。

二、93.复原IP 地址

1.题目描述

2.代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值