2019-09-01 16:58
山东大学 研发工程师 云子木:原本以为dfs肯定时间不够,还想要剪枝,但一看题目已经放水了,N、M是[1, 8]。我来个python版本的AC代码。 import sys
def str2list(string):
res = []
while string != '':
res.append(int(string[0]))
string = string[1:]
return res
def dfs(mei, create, temp):
if create == bai and not mei:
res.append(temp)
elif not mei:
return
else:
# d
dfs(mei[1:], create, temp + ['d'])
# l
dfs(mei[1:], [mei[0]] + create, temp + ['l'])
# r
dfs(mei[1:], create + [mei[0]], temp + ['r'])
data = sys.stdin.readlines()
num = len(data)
max_len = int(data[0].strip())
for i in range((num - 1) // 2):
res = []
flag = True
mei = str2list(data[1 + i * 2].strip())
bai = str2list(data[2 + i * 2].strip())
print('{')
for b in bai:
if b not in mei:
flag = False
if not flag:
print('}')
continue
dfs(mei, [], [])
for j in range(len(res)):
out = ''
for s in res[j]:
out += s + ' '
print(out[:-1])
print('}')
投递拼多多集团-PDD等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了: