- 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 - 摊销分析
- 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']
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']