我最近研究了Quickperm算法来迭代生成字符串的排列,除了this以外,它不是非常详细/说明性,我找不到其他任何可以更清楚地解释它的资源。我还认为,只需检查我们交换的值是否相同,就可以处理字符串中有重复字符,但仍然存在重复排列的情况。
谁能指出如何删除重复项并提供其他来源或解释quickperm算法?
似乎不太可能在生成排列时立即进行,在QuickPerm中,最好的选择是在每个完全生成的排列后继续添加到集合中,以继续删除重复项。
将标准算法用于enumerating permutations in lexicographic order。像许多聪明的算法一样,QuickPerm也很脆弱。不能轻易将其推广到重复的情况。