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