1.七段码:练习系统
求解:思路就是组合,首先利用哈希表来存储所有字符和与它邻接的字符,其次求满足要求的组合。代码讲解如下(各位看官可自我进行改进),另一种直接暴力的算法请参考这篇文章
#七段码#组合+回溯
Last={
'a':['b','f'],'b':['a','c','g'],'c':['b','g','d'],'d':['c','e'],
'e':['d','f','g'],'f':['a','e','g'],'g':['b','c','e','f']}#哈希存储
def bfs(path,s,n):#定义回溯函数
if len(path)==n:#结束条件
kk=''.join(sorted(path))#对组合进行大小排序
if kk not in AA:#是否满足条件要求
AA.append(kk)#结果增加
return
for i in Last[s]:
if i not in path:#剪枝操作
path.append(i)#添加路径
bfs(path,i,n)#下一节点
path.pop()#路径回溯
if __name__=='__main__'