Iza*_*ing 0 permutation dart flutter
我目前在 flutter 上使用 trotter dart 包,但是它无法生成具有重复数字的字符串的所有排列。
它适用于 1234,但不适用于 2344。
(免责声明:我是 的作者trotter。感谢您对我的图书馆的兴趣!)
当处理中等数量的项目时,我们可以简单地创建从索引排列的常规序列到任意列表中的各个项目的映射。
在这种情况下,任意列表包含 string 中的项目'2344',因此我们可以生成这些项目的排列,如下所示。(但是请注意,对于无法区分的项目,排列不是唯一的。不过,我们可以通过转换为 a 来摆脱非唯一的项目Set。)
import 'package:trotter/trotter.dart';
main() {
final items = characters('2344'),
indices = List<int>.generate(items.length, (i) => i),
permsOfItems = indices
.permutations()
.iterable
.map((perm) => perm.map((index) => items[index]).join());
print('All permutations (including non unique):');
for (final perm in permsOfItems) {
print(perm);
}
print('\nOnly unique:');
for (final perm in permsOfItems.toSet()) {
print(perm);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
所有排列(包括非唯一排列): 2344 2344 2434 4234 4243 2443 2443 2434 4234 4243 4423 4423 4432 4432 4342 4324 3424 3442 3442 4342 4324 3424 3244 3244 唯一独特的: 2344 2434 4234 4243 2443 4423 4432 4342 4324 3424 3442 3244
| 归档时间: |
|
| 查看次数: |
1092 次 |
| 最近记录: |