代码改变世界

[LeetCode] 系统刷题3_排列组合/backtracking

2019-04-11 10:23  Johnson_强生仔仔  阅读(316)  评论(0编辑  收藏  举报

 适用范围:

  • 几乎所有搜索问题
  • 什么时候输出
  • 哪些情况需要跳过

Python library

 import itertools

itertools.product('ABC', repeat = 2)        3 * 3 = 9

list(itertools.product('ABC', repeat = 2))=> [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]

itertools.permutations('ABC', 2)       3 * 2 = 6

print(list(itertools.permutations('ABC', 2)))  =>   [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]

itertools.combinations('ABC', 2)       3 

print(list(itertools.combinations('ABC', 2))) =>  [('A', 'B'), ('A', 'C'), ('B', 'C')]

 

相关题目:

Subsets/Combinations:

 

Permutations:

 

Backtracking