首页 > 解决方案 > 重复排列排列与 DI 序列

问题描述

我想通过长度给出的排列子集进行排名和取消排名。子集定义如下:

具有元素的排列长度 5 的示例1,1,2,2,3

我们有输入位串0101长度 4(总是排列长度 - 1)。

0 表示 2 个连续元素递增或等于。

1 表示 2 个连续的元素在递减。

对于此位串,存在具有以下元素排列的子集1,1,2,2,3

1,2,1,3,2排名 0

1,3,2,2,1排名 1

2,2,1,3,1等级 2

2,3,1,2,1等级 3

我想要排名和取消排名的位串定义的排列子集?对于给定的排列元素和位串是否有一种算法方法可以在不创建每个排列和检查的情况下执行此操作?

这是一个没有重复排列的解决方案,也许可以调整:

DI序列的排列排序

先感谢您。

标签: arraysalgorithmmathpermutationcombinatorics

解决方案


推荐阅读