2020-03-31-求闭包

2020-03-31  本文已影响0人  termanary

今天求一个闭包,走了不少弯路,谨此记录。
一开始,我是这样的:

import string
a1 = string.ascii_lowercase
a2 = string.digits
A = []
for i in a1 + a2 + ' ' :
    for j in a1 + a2 + ' ' :
            A = A + [i+j]

空格代表空,求a1+a2不大于2的闭包。
这个程序的问题在于'a '等价于' a'
然后改为

import string
a1 = string.ascii_lowercase
a2 = string.digits
A = []
for i in a1 + a2 + ' ' :
    for j in a1 + a2 :
            A = A + [i+j]

然后这个程序的问题在于没有空集。

正确的作法是深搜:

import string
a1 = string.ascii_lowercase
a2 = string.digits
def dfs(n) :
    res = ['']
    tmp = []
    if(n==0) :
        return res
    for i in a1+a2 :
        tmp = dfs(n-1)
        for j in tmp :
            res = res + [i+j]
    return res
上一篇 下一篇

猜你喜欢

热点阅读