【发布时间】:2012-11-09 06:43:46
【问题描述】:
谁能帮助我如何以迭代和递归方式打印字符串的所有排列?我更喜欢 VB.NET 或者只是伪代码就可以了。
提前致谢。
【问题讨论】:
谁能帮助我如何以迭代和递归方式打印字符串的所有排列?我更喜欢 VB.NET 或者只是伪代码就可以了。
提前致谢。
【问题讨论】:
递归方法如下:
基本情况: 1个字母的排列是一个元素。
一般情况: 一组字母的排列是每个字母的列表,与其他字母的每个排列连接。
解释:
如果集合只有一个字母,则返回该字母。 排列(a) -> a
如果集合有两个字母,则为每个字母返回它以及其余字母的排列。
排列(ab)->
a + 排列(b) -> ab
b + 排列(a) -> ba
对于集合中的每个字母,返回与其余字母组合的字母连接的字母。
排列(abc)->
a + permutation(bc) --> abc, acb
b + permutation(ac) --> bac, bca
c + permutation(ab) --> cab, cba
【讨论】: