https://www.ksp.sk/ulohy/zadania/1238/问题链接(斯洛伐克语)
最简单的英文翻译:第一个,命名符号列表,变量是未定义数量的“<”和“>”符号的输入。第二个,命名为 n,是符号列表 + 1 的长度,因为它是这些符号之间的数字数量(例如 2>1<3,符号列表有 2 个符号,n 是 3,数字是范围的列表1-n+1 独占)。我应该为符号打印出正确的数字顺序(例如 4 3 2 1 用于输入 >>>。)
我的代码有效,但根据网站的说法很慢。注释掉的是我基于列表理解的第一个版本。
#combinations(ofwhat,howmanychars)
from itertools import permutations
signlist = [l for z in input() for l in z]
n = len(signlist)+1
ListOfCorrect = [i for i in permutations(range(1,n+1),n) if eval(("{}".join(str(y) for y in i)).format(*signlist))]
print(*ListOfCorrect[0],sep = " ")
#for i in permutations(range(1,n+1),n):
# forstring1 = ("{}".join(str(y) for y in i)).format(*signlist)
# if eval(forstring1):
# print(" ".join(str(y) for y in i))
# break
#x = list(permutations(range(1,n+1),n))