STL 中 next_permutation 的 Python 实现

2024-04-18

next_permutation 是一个 C++ 函数,它给出字符串按字典顺序排列的下一个排列。有关其实现的详细信息可以从这篇非常棒的文章中获得。http://wordaligned.org/articles/next-permutation http://wordaligned.org/articles/next-permutation

  1. 有谁知道Python中有类似的实现吗?
  2. STL 迭代器有直接的 Python 等效项吗?

  1. itertools.排列 http://docs.python.org/library/itertools.html#itertools.permutations很接近;最大的区别是它将所有项目视为唯一而不是比较它们。它也不会就地修改序列。在 Python 中实现 std::next_permutation 对您来说可能是一个很好的练习(在列表上使用索引而不是随机访问迭代器)。

  2. 不。Python 迭代器与输入迭代器相当,后者属于 STL 类别,但只是冰山一角。您必须改为使用其他构造,例如输出迭代器的可调用结构。这破坏了 C++ 迭代器良好的语法通用性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STL 中 next_permutation 的 Python 实现 的相关文章

随机推荐