赞
踩
来源:代码随想录
本题的力扣链接:https://leetcode-cn.com/problems/palindrome-partitioning/
递归用来纵向遍历,for循环用来横向遍历,切割线(就是图中的红线)切割到字符串的结尾位置,说明找到了一个切割方法。
此时可以发现,切割问题的回溯搜索的过程和组合问题的回溯搜索的过程是差不多的。
但是,还是和组合不太一样,我们收集的元素是啥呢?其实就是路径上的元素,和组合一样,只不过这个时候不是收集一个元素,而是字符串的子集。
只要是把这个树能画出来,我们就知道怎么用回溯法做了,按回溯的模板和递归三部曲来:
注意切割过的位置,不能重复切割,所以,backtracking(s, i + 1); 传入下一层的起始位置为i + 1。
class Solution:
def partition(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。