欢迎光临散文网 会员登陆 & 注册

LeetCode-131-分割回文串

2021-11-28 09:36 作者:雄狮虎豹  | 我要投稿

分割回文串

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

回文串 是正着读和反着读都一样的字符串。

示例说明请见LeetCode官网。

来源:力扣(LeetCode)   

链接:https://leetcode-cn.com/problems/palindrome-partitioning/   

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法一:递归法

首先处理两种特殊情况,如果字符串为null,直接返回空结果集;如果字符串的长度为1,则只有一种分割情况,直接返回这种情况。

当字符串的长度大于1时,使用递归的方式处理,其中会使用一个判断字符串是否是回文串的方法isHuiwen,递归过程如下:

  • 从字符串的第一个字符开始判断,参数有前面已经被分区的回文串list、当前位置、当前要判断的子串;

  • 首先判断如果已经处理到字符串的最后一个字符,如果当前分区字符串是回文串,则将当前分区字符串添加到partitions,然后将之添加到结果集中,否则,直接返回;

  • 否则,首先判断当前分区字符串是否是回文串,有两种可能:

    • 如果是,则将当前分区字符串添加到partitions,将下一个字符作为新的分区字符串开始递归判断;

    • 如果不是,将下一个字符添加到当前分区字符串中,递归判断。

最后,返回结果集。

【每日寄语】 弃燕雀之小志,慕鸿鹄而高翔。



LeetCode-131-分割回文串的评论 (共 条)

分享到微博请遵守国家法律