【发布时间】:2020-01-13 11:19:26
【问题描述】:
是否有一种简单的(甚至可能是 Kotlin 方式)来生成给定列表(包含重复元素)的所有排列,其中:
- 保持元素的顺序
- 删除所有重复元素
- 包括所有元素
例如:
鉴于列表:[A, B, C, A, B, D, A],我预计会有以下结果:
[A, B, C, D], [A, C, B, D], [B, C, A, D], [C, A, B, D], [C, B, A, A], [B, C, D, A],
...(如果还有组合的话)
以下结果无效:
[A, B, C, A, D](重复 A)
[A, B, C, A](A 重复,D 缺失)
[A, C, D, B](顺序错误)
感谢您的帮助。
【问题讨论】:
-
为什么
[A, C, D, B]被认为是错误的,但[A, C, B, D]不是?是不是因为D, B的顺序? -
是的。
[A, C, B, D]由[A1, C, B2, D]生成。对于[A, C, D, B],在D之后的某个地方需要另一个B
标签: list kotlin permutation