String 非唯一字符字符串的排列
虽然有很多解决方案可以找到一组唯一字符的所有(唯一)排列,但我还没有找到在字符非唯一时有效的解决方案。我已经在下面列出了我的想法,非常感谢您的反馈,但也可以随意提供您自己的想法 我的想法是: 为了说明我的算法,我使用了字符串ABBC的例子,我想找到它的所有排列。因为有两个B,我将给它们贴上B1和B2的标签String 非唯一字符字符串的排列,string,algorithm,permutation,String,Algorithm,Permutation,虽然有很多解决方案可以找到一组唯一字符的所有(唯一)排列,但我还没有找到在字符非唯一时有效的解决方案。我已经在下面列出了我的想法,非常感谢您的反馈,但也可以随意提供您自己的想法 我的想法是: 为了说明我的算法,我使用了字符串ABBC的例子,我想找到它的所有排列。因为有两个B,我将给它们贴上B1和B2的标签 通过删除原始字符串中的所有重复字符创建新字符串(例如,将AB1B2C转换为AB1C) 查找新字符串的所有可能排列(例如AB1C、ACB1、B1AC等)。有很多算法可以做到这一点,因为字符串的字
以前的研究:PrkHar在这个问题上的答案声称是重复的:它可能,但是我怀疑代码中有一个bug。
如何:假设带重复的字符串是长度n。现在考虑序列0,1,…n-1。s list,使用排列中的数字作为原始字符串的索引生成相应的字符串。例如,如果字符串为ABBC,则序列将为0,1,2,3;0,1,3,2;等等。例如,序列3,0,1,2是其中一个排列,并生成字符串CABB下一个排列算法()可以处理非唯一字符。可能的重复