この記事では、Javaが参照のために文字列の配置と組み合わせを実装する問題を紹介します。特定のコンテンツは次のとおりです
java.util.arraylistをインポートします。 java.util.collectionsをインポートします。 /***文字列を入力し、文字列の文字のすべての配置を辞書の順序で印刷します。たとえば、文字列ABCを入力してから、文字列A、B、cによって配置できるすべての文字列ABC、ACB、BAC、 * BCA、CAB、CBAを印刷します。 * * @author pomay * */ public class solution_stringarrange {public arraylist <string> permutation(string str){if(str == null)return null; ArrayList <String> list = new ArrayList <String>(); char [] pstr = str.tochararray();順列(PSTR、0、リスト); collections.sort(list);返品リスト。 } static void順列(char [] str、int i、arraylist <string> list){// empty if(str == null)return; //最後の文字を指す場合if(i == str.length -1){if(list.contains(string.valueof(str)))return; list.add(string.valueof(str)); } else {//現在(int j = i; j <str.length; j ++)の順列操作を行っている文字列の最初の文字を指します{//次のすべての文字で順列操作を行う文字列の最初の文字を交換char temp = str [j]; str [j] = str [i]; str [i] = temp; //交換後、iの後に文字列の再帰的な配置を実行します。順列(str、i + 1、list); //各ラウンドが終了した後、スイッチを戻して次のラウンドのアレンジメントを実行しますtemp = str [j]; str [j] = str [i]; str [i] = temp; }}} public static void main(string [] args){string str = "aab"; solution_stringarrange changestring = new Solution_stringArrange(); arrayList <string> list = changestring.permutation(str); for(int i = 0; i <list.size(); i ++){system.out.print(list.get(i)+""); }}}組み合わせ:
長さnの文字列で最初の文字を選択し、長さn-1の残りの文字列でm-1文字を選択するか、長さnの文字列の最初の文字を選択しないで、長さn-1の残りの文字列でm文字を選択しない
java.util.arraylistをインポートします。 java.util.listをインポートします。 /***文字列を入力し、文字列の文字のすべての組み合わせを辞書の順序で印刷します。たとえば、文字列ABCを入力し、すべての文字列A、B、C、AB、AC、BC *、ABCを印刷します。 n文字と長さのm * * * @author pomay * */ public class solution_stringcombination {//文字列ABC> a、b、c、ab、ac、bc、abc public static void perm(string s){list <string> result = new arraylist <string>(); //(int i = 1; i <= s.length(); i ++){combonity(s、i、result); }} // string s public static voidの組み合わせからm文字を選択します(string s、int m、list <string> result){// m == 0の場合、再帰は終了します。出力電流結果(m == 0){for(int i = 0; i <result.size(); i ++){system.out.print(result.get(i)); } system.out.print( "、");戻る; } if(s.length()!= 0){//現在の要素result.add(s.charat(0) + "");を選択します。 //サブストリングの使用法、文字列の組み合わせを1からnの組み合わせの終わりまで傍受する(S.Substring(1、s.length())、m -1、result); result.remove(result.size() - 1); //現在の要素の組み合わせ(S.Substring(1、S.Length())、M、result)を選択しないでください。 }} public static void main(string [] args){string str = "abc"; perm(str); }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。