- Python 数据结构和算法教程
- Python-DS 主页
- Python-DS简介
- Python-DS 环境
- Python-数组
- Python - 列表
- Python - 元组
- Python-字典
- Python - 二维数组
- Python-矩阵
- Python - 集合
- Python - 地图
- Python - 链表
- Python-堆栈
- Python-队列
- Python-出队
- Python - 高级链表
- Python-哈希表
- Python - 二叉树
- Python - 搜索树
- Python - 堆
- Python - 图表
- Python - 算法设计
- Python——分而治之
- Python - 递归
- Python-回溯
- Python - 排序算法
- Python - 搜索算法
- Python - 图算法
- Python-算法分析
- Python - 大 O 表示法
- Python - 算法类
- Python - 摊销分析
- Python - 算法论证
- Python 数据结构和算法有用资源
- Python - 快速指南
- Python - 有用的资源
- Python - 讨论
Python-回溯
回溯是递归的一种形式。但这涉及到从所有可能性中选择唯一的选项。我们首先选择一个选项,如果我们得出结论认为该特定选项没有给出所需的解决方案,则从该选项中回溯。我们通过遍历每个可用选项来重复这些步骤,直到获得所需的解决方案。
下面是查找给定字母集的所有可能排列顺序的示例。当我们选择一对时,我们应用回溯来验证该对是否已经创建。如果尚未创建,则该对将添加到答案列表中,否则将被忽略。
例子
def permute(list, s): if list == 1: return s else: return [ y + x for y in permute(1, s) for x in permute(list - 1, s) ] print(permute(1, ["a","b","c"])) print(permute(2, ["a","b","c"]))
输出
执行上述代码时,会产生以下结果 -
['a', 'b', 'c'] ['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']