问题定义:
- 两个字符串A和B,长度分别为M和N,用这两个字符串组成长度为M+N的字符串S,要求S中来自A的字符满足其在A中的排列顺序,S中来自B的字符满足其在B中的排列顺序。
分析:
- 下面的采用了两种方法,第一种方法采用类似于全排列的迭代+递归的方法,实现略困难,第二种方法采用类似于全组合的0-1双递归方法,思路更清晰明朗。
- 为了故意压缩代码量,算法中没有标明注释,两种方法的核心代码都是15行。
代码:
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
输出结果:
ABC123 AB1C23 AB12C3 AB123C A1BC23 A1B2C3 A1B23C A12BC3 A12B3C A123BC 1ABC23 1AB2C3 1AB23C 1A2BC3 1A2B3C 1A23BC 12ABC3 12AB3C 12A3BC 123ABC ------------- ABC123 AB1C23 AB12C3 AB123C A1BC23 A1B2C3 A1B23C A12BC3 A12B3C A123BC 1ABC23 1AB2C3 1AB23C 1A2BC3 1A2B3C 1A23BC 12ABC3 12AB3C 12A3BC 123ABC 请按任意键继续. . .