我想找到给定单词的所有可能组合.比如说,给定的单词是"the"然后我需要"t,h,e,teh ......".我必须在groovy中找到这个,有什么方法吗?或者请告诉我算法的大纲.
如果你也需要子集,你可以这样做:
("word" as List).subsequences()*.permutations().inject( [] ) { list, set ->
list.addAll( set )
list
}*.join().sort { it.length() }
Run Code Online (Sandbox Code Playgroud)
它给你以下输出:
[o,d,r,w,dw,wd,do,od,dr,rd,wr,rw,ow,wo,ro,or owd,wod,wdo,odw,dwo,dow,orw,owr,wor ,wro,rwo,行,dor,ord,odr,rdo,rod,dro,wdr,rwd,drw,rdw,wrd,dwr,wrdo,orwd,wrod,wodr,ordw,wdor,rwod,wdro,word,owdr ,rdow,卓尔,drwo,rdwo,odwr,dorw,odrw,dowr,dwro,rodw,dwor,owrd,rowd,rwdo]
编辑:将其更改set.each为a,list.addAll因为它应该更快(并且读取更容易)