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'이라는 문자열에 할당됩니다. 문자가 사용되지 않으면 함수에 대한 재귀 호출이 발생합니다. 그렇지 않으면 함수 호출이 발생하지 않습니다. 메인 함수에서 문자열을 정의하고 이 문자열에서 함수를 호출합니다.