寻找字母组合

时间:2015-05-01 02:17:14

标签: java

对于诸如-u - (' - '表示空格)之类的字符串,我给了一封信,让我们说" d"。我的目标是找到字母d可替换为" - "的所有组合。有点难以解释,但这是预期的输出看起来像:

杜 -

哑弹 -

DU-d

dudd

-ud -

-udd

-u-d

我似乎无法找到找到组合的固定方式,因为我需要能够找到各种长度的组合,例如:

-u -----,或---- u -

感谢您今后的任何帮助,如果需要更多说明,我可以尝试更好地解释一下。

2 个答案:

答案 0 :(得分:0)

最好以递归方式完成。

  • 基本情况:空字符串的组合为[]
  • 递归案例1:获取u.....的组合,获取.....的所有组合;然后为每个人添加"u"
  • 递归案例2:获取-.....的组合,获取.....的所有组合;然后为每个人添加"d"前缀,并为每个人添加-前缀,并连接两个数组。

答案 1 :(得分:0)

这是我解决问题的方法:

...
user.name=Joshua Guerra
user.email=joshua@allianceconsults.net
...

理念是,善待所有' - '作为二进制数的位,所以计算所有出现的' - '。为方便起见,我们说二进制数中有n位。

二进制中从1到(2 ^ n)-1的数字将产生字符串的1' s和0&#39的所有可能组合。

交换所有' 0'与' - ',并交换所有' 1'与'。& 插入' u'到原来的位置。

吊杆。

编辑:修改了代码,因此您不需要第三方库。