たとえば、「ABC」を入力して、可能なすべての組み合わせを印刷し、重複した値を排除します。
いわゆる配置の組み合わせは次のとおりです。
配置の組み合わせ、文字列:ABC
BCA
ACB
ABC
CBA
bac
タクシー
配置と組み合わせの数:6
実装コード(Java8 Lambda Expression実装と組み合わせて)
import org.junit.test; import java.util.arraylist; import java.util.hashset; import java.util.list; public class test2 {@test public void test3(){string input = "abc"; // 1。リスト<string> sortresult = sort(input); system.out.println( "並べ替えコンビネーション、文字列:"+入力); // 2。重複列の除去ハッシュセットh = new Hashset(sortresult); sortresult.clear(); ortresult.addall(h); //3.printout sortresult.foreach(e-> system.out.println(e)); //4.print印刷システムの数。 } private list <string> sort(string input){list <string> sortlist = new ArrayList(); if(input == null || "" .equals(input)){system.out.println( "tip:null文字を入力した場合、有効な値を入力してください!"); new arrayList()を返します。 } char leftchar = input.charat(0); if(input.length()> 1){string righttring = input.substring(1、input.length()); List <String> rightStringSortedList = sort(righttring); rightStringSortedList.foreach((e) - > {for(int i = 0; i <e.length()+1; i ++){sortlist.add(new Stringbuffer(e).insert(i、leftchar).tostring();}}); } else {sortlist.add(string.valueof(leftchar)); } sortlistを返します。 }}より簡潔なコードの実装がある場合は、ケチをして投稿して共有しないでください。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。