求解两个String按照正常顺序的一个结合的算法..。。。
问题这样,比如有一个String ='abd' 另一个string = 'BFPS' 然后结合起来可以是aBFbPdS或者BabdFPS 等等
简单说就是结合起来的新String在俩旧string可以乱序。但是单独的那一个看上去必须还是那个顺序。等同于插入进去。。请问有大侠可以指导下应该怎么实现么。。
最好写一个伪代码。。。感恩!!
[解决办法]
容易理解的话,用递归吧。
串A[0...n]、串B[0....m]、索引i
(串B的首字符往新串A的A[i]的位置插入或者不插入两种分支,索引+1,然后递归。
终止条件是:索引到新A串尾或者串B为空
行为:输出新串A和新串B的连接串A+B)
不过这样刚刚开始需要两个不同的根,{A ,B, 0}和{B[0]+A, B[1...m], 0},进行遍历。
树1:
{A ,B, 0}
| |
{A[0]+B[0]+A[1...n], B[1...m], 1} {A, B, 1}
| | ||
{A[0]+B[0]+B[1]+A[1...n], B[2...m], 2} {A[0]+B[0]+A[1...n], B[1...m], 2} ......
树2:
{B[0]+A, B[1...m], 0}
....
写伪代码感觉不熟,大概讲下自己的想法和楼主探讨下吧。