我希望在给定n个字符的情况下生成一定长度的所有可能字符串 .
因此,例如,如果l = 2且字符为[a,b,c],则结果应为:'aa','ab','ac','ba','bb','bc','ca' ,'cb'和'cc' .
最初我使用递归算法完成了这项工作 . 但是,我得到了很多重复,而且非常耗时 .
此外,我想到了一个在基数n中“计数”的算法 . 因此,在上面的示例中,如果我替换a-> 0,b-> 1和c-> 2,我实际上计数到'cc' - >基数为3的22 . 但是,这也使我觉得效率低下 .
有什么建议 ?
2 回答
是的,您可以使用除法表示“计数基数n” .
替代实施 - 使用旧电动车轮等方法遍历所有
n^m
值:您不必实施任何后续行动 . 您所要做的就是从上一个项目中获取下一个项目
Code (C#) ;让我们概括解决方案(任何
alphabet
没必要string
)Demo:
Outcome: