解决回溯算法之切割问题(leetcode--分割回文串)

1.问题描述

在这里插入图片描述

2.做题思路(关键是画出对于的二叉树图)

1.思考从起始串的分割方案, 有a ,aa, aab三种方式
2.————————————剩余ab,b,空接下来对ab,b同样的方式进行分割
3.———————对ab分割有a, ab, 对b分割只有b

在这里插入图片描述

3.代码实现

path = [] # 收集路径上的回文串
result = [] # 统计结果

def isHW(s, start, end): # 判断串是否是回文串(顺序读或倒序读结果一样)
	while start <= end:
		if s[start] == s[end]:
			start += 1
			end -= 1
		else:
			return False
	return True 

def backtracking(s, startIndex):
	if statIndex >= len(s):
		result.append(path[:])
		return
	for i in range(startIndex. len(s)):
		if isHW(s, startIndex, i): # 符合回文串才继续向下递归
			path.append(s[startIndex:i+1])
			backtracking(s, i+1) # 见图片理解为什么是i+1
			path.pop()
backtracking(s, 0)
print(result)

相关推荐

  1. 回溯分割

    2024-07-15 23:50:01       31 阅读
  2. LeetCode 算法分割 c++

    2024-07-15 23:50:01       26 阅读
  3. 回溯Leetcode 131. 分割【中等】

    2024-07-15 23:50:01       37 阅读
  4. 算法分割【动态规划】【回溯

    2024-07-15 23:50:01       49 阅读
  5. leetcode 131. 分割

    2024-07-15 23:50:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 23:50:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 23:50:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 23:50:01       45 阅读
  4. Python语言-面向对象

    2024-07-15 23:50:01       55 阅读

热门阅读

  1. Kafka配置SSL信道加密

    2024-07-15 23:50:01       17 阅读
  2. TensorFlow 的基本概念和使用场景

    2024-07-15 23:50:01       16 阅读
  3. IT专业入门,高考假期预习指南

    2024-07-15 23:50:01       13 阅读
  4. 面试必备!Redis面试题合集

    2024-07-15 23:50:01       15 阅读
  5. 面试题 25. 合并两个排序的链表

    2024-07-15 23:50:01       12 阅读
  6. C# 1.方法

    2024-07-15 23:50:01       17 阅读
  7. Neo4j数据库相关

    2024-07-15 23:50:01       16 阅读
  8. PYTHON自学班车(三)NUMPY

    2024-07-15 23:50:01       17 阅读
  9. C语言从头学31——与字符串变量相关的几个函数

    2024-07-15 23:50:01       20 阅读
  10. C++版OpenCV_01_图像数字化

    2024-07-15 23:50:01       17 阅读
  11. NAT实验

    NAT实验

    2024-07-15 23:50:01      12 阅读