【问题标题】:What does line 6 actually does do to check if a permuation is already displayed?第 6 行实际上做了什么来检查排列是否已经显示?
【发布时间】:2020-06-17 09:57:27
【问题描述】:

''' 我知道 if 语句中的第二个条件是在输入有重复元素的情况下检查已经进行的排列。但是到底是怎么做的! '''

def permutation(input_list, partial, used):
    if len(partial) == len(input_list):
        print(partial)
    else:
        for i in range(0, len(input_list)):
                if not used[i] and not (input_list[i] == input_list[i - 1] and not used[i - 1]):
                used[i] = True
                partial.append(input_list[i])
                permutation(input_list, partial, used)
                used[i] = False
                partial.pop(len(partial) - 1)


nums = [2,1,2,5]
used = [False for _ in range(0, len(nums))]
permutation(nums, [], used)

【问题讨论】:

    标签: python-3.x backtracking


    【解决方案1】:

    语句,not used[i] 在所有情况下都返回False,除非used[i] 为0。
    input_list[i] == input_list[i - 1] and not used[i - 1] 检查input_list[i] == input_list[i - 1] 是否在used[i -1] 为0 时。最后的not 否定它.

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 2019-01-07
      • 2016-08-06
      • 2013-06-02
      • 2020-11-21
      • 2015-02-26
      • 2017-06-29
      • 2013-06-13
      • 2021-10-25
      相关资源
      最近更新 更多