"""
设计:Python程序设计
作者:初学者
日期:2022年 05月 10日
"""
# 例121 排列序号壹
# 1.问题描述
# 给出一个不含重复数字的排列,求这些数字所有排列按字典序排序后的编号。
# 编号从1开始
# 2.问题示例
# 输入[1,2,4],输出1,因为这个排列是1,2,4,三个数字排列的第一个字典序的排列。
# 输入[3,2,1],输出6,因为这个排列是1,2,3,三个数字排列的第一字典序的排列。
# 3.代码示例
class Soiution:
"""
参数number_list:整数数组
返回值:整数
"""
def lexicographical_order(self, number_list):
result = 1
factor = 1
for i in range(len(number_list) - 1, -1, -1):
rank = 0
for j in range(i + 1, len(number_list)):
rank += 1
result += factor * rank
factor *= len(number_list) - i
return result
# 主函数
if __name__ == '__main__':
s = Soiution()
A = [3, 2, 1]
ans = s.lexicographical_order(A)
print("输入:", A)
print("输出:", ans)
排列序号壹
最新推荐文章于 2024-07-25 15:15:22 发布