关注
大佬看看这个代码没问题吧,第二题 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)
查看原帖
点赞 评论
相关推荐
11-21 15:10
华南农业大学 运营 点赞 评论 收藏
分享
10-07 10:41
天津理工大学中环信息学院 硬件开发 点赞 评论 收藏
分享
11-12 18:47
中南大学 Java 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
258761次浏览 2130人参与
# 0offer是寒冬太冷还是我太菜 #
885483次浏览 7891人参与
# 北方华创开奖 #
23445次浏览 260人参与
# 地方国企笔面经互助 #
2766次浏览 7人参与
# 学历or实习经历,哪个更重要 #
42814次浏览 319人参与
# 选完offer后,你后悔学本专业吗 #
12690次浏览 91人参与
# 查收我的offer竞争力报告 #
18537次浏览 248人参与
# 应届生被毁约被毁意向了怎么办 #
27906次浏览 243人参与
# 你最想要的公司福利是? #
41363次浏览 139人参与
# 如何一边实习一边秋招 #
986697次浏览 12607人参与
# 一觉醒来,我觉醒了超级打工人系统 #
3216次浏览 36人参与
# 你最希望上岸的公司是? #
76115次浏览 469人参与
# 嵌入式转岗的难度怎么样 #
11087次浏览 250人参与
# 如何写一份好简历 #
604210次浏览 8489人参与
# 面试体验感最好的是哪家? #
83470次浏览 815人参与
# 机械应届生薪资要多少才合适? #
12513次浏览 61人参与
# 你认为第一份工作重要吗 #
5395次浏览 49人参与
# 秋招OC许愿 #
227673次浏览 1878人参与
# 来聊聊机械薪资天花板是哪家 #
65183次浏览 441人参与
# 秋招被确诊为…… #
59464次浏览 316人参与
# 你觉得第一学历对求职有影响吗? #
14984次浏览 121人参与