Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで文字列のすべての順列を出力します


以下は、文字列のすべての順列を出力するJavaプログラムです-

public class Demo{
   static void print_permutations(String my_str,String my_ans){
      if (my_str.length() == 0){
         System.out.print(my_ans + " ");
         return;
      }
      boolean my_arr[] = new boolean[26];
      for (int i = 0; i < my_str.length(); i++){
         char ch = my_str.charAt(i);
         String remaining_str = my_str.substring(0, i) + my_str.substring(i + 1);
         if (my_arr[ch - 'a'] == false)
         print_permutations(remaining_str, my_ans + ch);
         my_arr[ch - 'a'] = true;
      }
   }
   public static void main(String[] args){
      String my_str = "hey";
      System.out.println("The permutation of the string are :");
      print_permutations(my_str, "");
   }
}

出力

The permutation of the string are :
hey hye ehy eyh yhe yeh

Demoという名前のクラスには、静的関数「print_permutations」が含まれています。この関数は、文字列が空かどうかをチェックし、空の場合は出力が出力されます。現在、「my_arr」という名前のブール配列に36のサイズが割り当てられており、デフォルトでは「false」の値が格納されています。アルファベットが使用されるたびに、配列内のそのインデックスは「true」に変更されます。

'for'ループは、文字列の長さを反復処理するために使用され、文字列のi番目の文字がチェックされます。 i番目の文字を含まない文字列の残りの部分は、「remaining_str」という名前の文字列に割り当てられます。文字が使用されていない場合、関数への再帰呼び出しが発生します。それ以外の場合、関数呼び出しは発生しません。 main関数では、文字列が定義され、この文字列に対して関数が呼び出されます。


  1. Javaで特定の文字列のすべての大文字を印刷するにはどうすればよいですか?

    キャラクター クラスはOのサブクラスです bject クラスであり、プリミティブ型 charの値をラップします オブジェクト内。タイプ文字のオブジェクト クラスには、タイプがcharである単一のフィールドが含まれています。 文字列の文字をループで繰り返すことですべての大文字を印刷し、個々の文字が大文字であるか、 isUpperCase()を使用していないかを確認できます。 メソッドであり、静的 方法 キャラクターの クラス。 構文 public static boolean isUpperCase(char ch) 例 public class PrintUpperCaseLetterS

  2. 指定された文字列のすべての順列を出力するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List):    return ''.join(List) # permutations def permute(a, l, r):    if l == r:       print (toString(a))    e