关注
大佬看看这个代码没问题吧,第二题 DFS,加了个简单的剪枝 import sys
def per(origin, target):
for i in target:
if i not in origin:
return []
res = []
dfs(origin, target, [], "", res)
return res
def dfs(old, target, path, now, res):
if not old:
# 遍历结束
# 判断是否相等
if now == target:
res.append(path.copy())
return
if not is_in(now, target):
# 未遍历结束
# 判断是否已经不相等
return
cur = old[0]
if cur not in target:
path.append("d")
dfs(old[1:], target, path, now, res)
path.pop()
else:
path.append("d")
dfs(old[1:], target, path, now, res)
path.pop()
path.append("l")
dfs(old[1:], target, path, cur + now, res)
path.pop()
path.append("r")
dfs(old[1:], target, path, now + cur, res)
path.pop()
def is_in(ls1, ls2):
# 判断 ls1 是否为 ls2 的连续子集
str1 = "".join(map(str, ls1))
str2 = "".join(map(str, ls2))
return str1 in str2
if __name__ == "__main__":
s = int(sys.stdin.readline().strip())
ans = ""
for _ in range(s):
origin = sys.stdin.readline().strip()
target = sys.stdin.readline().strip()
ans += "{\n"
res = per(origin, target)
res.sort()
# print(res)
if res:
for each_res in res:
ans += " ".join(each_res) + " \n"
ans += "}\n"
if ans:
ans = ans[:-1]
print(ans)
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# AI面会问哪些问题? #
16431次浏览 332人参与
# 找AI工作可以去哪些公司? #
4523次浏览 111人参与
# 米连集团26产品管培生项目 #
12227次浏览 280人参与
# 你的实习产出是真实的还是包装的? #
15175次浏览 229人参与
# 从事AI岗需要掌握哪些技术栈? #
4701次浏览 133人参与
# 春招至今,你的战绩如何? #
47742次浏览 409人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
10505次浏览 131人参与
# 你做过最难的笔试是哪家公司 #
19389次浏览 128人参与
# 聊聊这家公司值得去吗 #
913940次浏览 4736人参与
# 长得好看会提高面试通过率吗? #
18852次浏览 207人参与
# 一张图晒出你司的标语 #
2615次浏览 47人参与
# 沪漂/北漂你觉得哪个更苦? #
7398次浏览 131人参与
# AI时代,哪个岗位还有“活路” #
8438次浏览 249人参与
# HR最不可信的一句话是__ #
4268次浏览 86人参与
# 阿里笔试 #
169385次浏览 1219人参与
# 快手年终开大包 #
13154次浏览 101人参与
# 春招你拿到offer了吗 #
824026次浏览 9956人参与
# 一人说一家双休的公司 #
69270次浏览 384人参与
# 学历对求职的影响 #
657791次浏览 4216人参与
# 工作压力大,你会干什么? #
69002次浏览 698人参与
# 什么专业适合考公 #
58758次浏览 306人参与
# 实习的你做了哪些离谱的工作 #
38637次浏览 253人参与

