재귀를 사용하여 사전순으로 문자열의 모든 순열을 인쇄해야 하는 경우 'for' 루프를 사용하여 요소 시퀀스를 반복하고 'join' 방법을 사용하여 요소를 결합하는 방법이 정의됩니다.
아래는 동일한 데모입니다 -
예시
from math import factorial def lexicographic_permutation_order(s): my_sequence = list(s) for _ in range(factorial(len(my_sequence))): print(''.join(my_sequence)) next = next_in_permutation(my_sequence) if next is None: my_sequence.reverse() else: my_sequence = next def next_in_permutation(my_sequence): if len(my_sequence) == 0: return None next = next_in_permutation(my_sequence[1:]) if next is None: my_sequence[1:] = reversed(my_sequence[1:]) q = 1 while q < len(my_sequence) and my_sequence[0] > my_sequence[q]: q += 1 if q == len(my_sequence): return None my_sequence[0], my_sequence[q] = my_sequence[q], my_sequence[0] return my_sequence else: return [my_sequence[0]] + next my_input = input('Enter a string : ') print("The string is :") print(my_input) print("The method is being called...") lexicographic_permutation_order(my_input)
출력
Enter a string : hey The string is : hey The method is being called... hey hye yeh yhe hey hye
설명
-
필요한 패키지를 가져옵니다.
-
요소의 사전순을 찾는 데 도움이 되는 'lexicographic_permutation_order'라는 메서드가 정의되어 있습니다.
-
'next_in_permutation' 메서드는 문자열의 다음 순열을 결정하는 데 도움이 됩니다.
-
사용자가 문자열을 입력하여 콘솔에 표시합니다.
-
이 문자열을 매개변수로 전달하여 메서드를 호출합니다.
-
출력은 콘솔에 표시됩니다.