Khi được yêu cầu in tất cả các hoán vị của một chuỗi theo thứ tự từ điển bằng cách sử dụng đệ quy, một phương thức được xác định, sử dụng vòng lặp 'for' để lặp lại chuỗi các phần tử và sử dụng phương thức 'nối' để nối các phần tử.
Dưới đây là minh chứng về điều tương tự -
Ví dụ
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)
Đầu ra
Enter a string : hey The string is : hey The method is being called... hey hye yeh yhe hey hye
Giải thích
-
Các gói bắt buộc được nhập.
-
Một phương pháp có tên ‘lexicographic_permutation_order’ được xác định để giúp tìm thứ tự từ vựng của các phần tử.
-
Phương thức ‘next_in_permutation’ giúp xác định hoán vị tiếp theo trong chuỗi.
-
Một chuỗi được nhập bởi người dùng và được hiển thị trên bảng điều khiển.
-
Phương thức được gọi bằng cách chuyển chuỗi này dưới dạng tham số.
-
Đầu ra được hiển thị trên bảng điều khiển.