-4
有两个字符串,每一个组合我想生成与第二第一个字的每个组合。我想插入第二个单词到第一个单词以生成每个可能的组合。唯一的规则是:生成的两个词
落后对方
没有插入单词,在这个例子:
string input = "Hello";
string secondInput = ".";
这种方法: GenerateAllCombinations(input,secondInput);
将返回:
//1 dot
.Hello
H.ello
He.llo
Hel.lo
Hell.o
Hello.
//2 dot
.H.ello
.He.llo
.Hel.lo
.Hel.lo
.Hell.o
.Hello.
.He.llo
.Hel.lo
.Hell.o
.Hello.
.Hel.lo
.Hell.o
.Hello.
H.e.llo
H.el.lo
H.ell.o
H.ello.
Hel.l.o
Hel.lo.
Hell.o.
//3 dots
.H.e.llo
.H.el.lo
.H.ell.o
.H.ello.
.He.l.lo
.He.ll.o
.He.llo.
.Hel.l.o
.Hel.lo.
.Hell.o.
//4 dots
.H.e.l.lo
.H.e.ll.o
.H.e.llo.
.He.l.l.o
.He.l.lo.
.Hel.l.o.
//5 dots
.H.e.l.l.o
.H.e.l.lo.
.He.l.l.o.
由于规则说我不想要这样的事情: Hell.o....
这防止产生无限组合。
这样看来,最好的办法是使用递归。我已经添加了一个正在做我想要的代码,但它没有使用递归。主要问题是我无法使用我的代码与每个输入。它只适用于一种大小的单词。你有什么想法如何解决这个问题?
你尝试过这么远吗? –
递归方法调用它自己,所以你的方法需要一个计数器作为第一个字符串的每一列的参数。 – louis12356
请在尝试寻求帮助之前尝试并发现问题。 – RH6