如何使字符串变成排列?

How to make string into permutation?

所以我得到的任务是创建一个函数,它以 x 作为参数,根据(我假设的)输入字母的序数值分配数字。请记住,只能输入不重复的小写字母。

因为 "a < b" 和 "a < c",如果我要在这个函数中输入一个字符串 "abc",它应该 return '123'。如果我输入 "zad",它应该 return “312”。换句话说,最小的字母从 1 开始,次小的字母从 2 开始,依此类推

我应该如何构建符合此条件的函数?我想我会包括一个从 ord[a] 到 ord[z] 的范围,然后包括一个 elif 循环语句。有什么指点吗?

您可以构造一个字典,将每个字符映射到其在原始字符串中不同字符的排序列表中的位置:

def perm(s):
    indexes = {x:i+1 for i,x in enumerate(sorted(set(s)))}
    return ''.join(str(indexes[x]) for x in s)

print(perm('abc'))
print(perm('zad'))
str1 = "bca"
print (sorted([str1.index(x)+1 for x in sorted(str1)]))

首先对它们进行排序并打印它们的排序索引。小心,+1 到索引,因为索引从 0.

开始