Hướng dẫn what is permutation of string in python? - hoán vị của chuỗi trong python là gì?
Trong ví dụ này, bạn sẽ học cách tính toán tất cả các hoán vị của chuỗi. Show Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình Python sau:
Hoán vị là phương pháp chọn các phần tử từ một tập hợp theo những cách khác nhau. Ví dụ: số cách mà các ký tự từ yup ypu uyp upy puy pyu None0, yup ypu uyp upy puy pyu None1, yup ypu uyp upy puy pyu None2 và không chọn bất kỳ. Chúng tôi sẽ thực hiện tương tự trong các ví dụ sau. Ví dụ 1: Sử dụng đệ quy
Đầu ra yup ypu uyp upy puy pyu None Trong ví dụ này, đệ quy được sử dụng để tìm các hoán vị của chuỗi
Ví dụ 2: Sử dụng itertools
Đầu ra ['pro', 'por', 'rpo', 'rop', 'opr', 'orp'] Trong ví dụ này, đệ quy được sử dụng để tìm các hoán vị của chuỗi Đầu tiên nhập gói ITERTOOLS để thực hiện phương thức hoán vị trong Python. Phương thức này lấy một danh sách làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu chứa tất cả các hoán vị trong một biểu mẫu danh sách. Xem thảo luận Cải thiện bài viết Đầu tiên nhập gói ITERTOOLS để thực hiện phương thức hoán vị trong Python. Phương thức này lấy một danh sách làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu chứa tất cả các hoán vị trong một biểu mẫu danh sách. Xem thảo luận Cải thiện bài viết Lưu bài viết Đọc Bàn luận Một hoán vị cũng được gọi là một số sắp xếp của người Viking, hoặc đơn đặt hàng, là một sự sắp xếp lại các yếu tố của một danh sách được đặt hàng thành một thư từ một-một với chính s. Một chuỗi độ dài n có n! hoán vị. & nbsp; Python3yup ypu uyp upy puy pyu None9 0 1 2 3 4 5 1 7yup ypu uyp upy puy pyu None9 9 3['pro', 'por', 'rpo', 'rop', 'opr', 'orp']1 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']2 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']5 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']7 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']8 3ABC ACB BAC BCA CBA CAB0 ABC ACB BAC BCA CBA CAB1 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 ABC ACB BAC BCA CBA CAB3 ABC ACB BAC BCA CBA CAB4 ABC ACB BAC BCA CBA CAB5 ABC ACB BAC BCA CBA CAB6 ABC ACB BAC BCA CBA CAB7 ABC ACB BAC BCA CBA CAB8 Enter the string : abc All possible strings are : abc acb bac bca cab cba1 Enter the string : abc All possible strings are : abc acb bac bca cab cba2 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 Enter the string : abc All possible strings are : abc acb bac bca cab cba4 Enter the string : abc All possible strings are : abc acb bac bca cab cba1 Enter the string : abc All possible strings are : abc acb bac bca cab cba6 ABC ACB BAC BCA CBA CAB8 ABC ACB BAC BCA CBA CAB9 Enter the string : abc All possible strings are : abc acb bac bca cab cba9 Enter the string : abc All possible strings are : abc acb bac bca cab cba1 Enter the string : abc All possible strings are : abc acb bac bca cab cba2 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 Enter the string : abc All possible strings are : abc acb bac bca cab cba4 Enter the string : abc All possible strings are : abc acb bac bca cab cba1 Enter the string : abc All possible strings are : abc acb bac bca cab cba6 ABC ACB BAC BCA CBA CAB8 ABC ACB BAC BCA CBA CAB9 Enter the string : abc All possible strings are : abc acb bac bca cab cba9
['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup 6
['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup 9yup 0
ABC ACB BAC BCA CBA CAB9 7Output: ABC ACB BAC BCA CBA CAB
Mô hình thuật toán: Backtracking & nbsp;O(n*n!) Note that there are n! permutations and it requires O(n) time to print a permutation. Không gian phụ trợ: O (R - L)O(r – l) Lưu ý: Giải pháp trên in các hoán vị trùng lặp nếu có các ký tự lặp lại trong chuỗi đầu vào. Vui lòng xem liên kết dưới đây cho một giải pháp chỉ in các hoán vị riêng biệt ngay cả khi có các bản sao trong Input. Bản in tất cả các hoán vị riêng biệt của một chuỗi đã cho The above solution prints duplicate permutations if there are repeating characters in the input string. Please see the below link for a solution that prints only distinct permutations even if there are duplicates in input. Cách tiếp cận khác: Python3yup ypu uyp upy puy pyu None9 ypu 2 3['pro', 'por', 'rpo', 'rop', 'opr', 'orp']1 ypu 5yup 9ypu 7['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup 6__['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']7 uyp 4['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 uyp 6 7['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 4 3ABC ACB BAC BCA CBA CAB3 ABC ACB BAC BCA CBA CAB4 ABC ACB BAC BCA CBA CAB5 ABC ACB BAC BCA CBA CAB6 ypu 55__69yup ypu uyp upy puy pyu None07 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 yup ypu uyp upy puy pyu None09 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup ypu uyp upy puy pyu None11 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 yup ypu uyp upy puy pyu None13 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup ypu uyp upy puy pyu None15 yup 6yup ypu uyp upy puy pyu None17 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 yup ypu uyp upy puy pyu None19 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup ypu uyp upy puy pyu None21 ABC ACB BAC BCA CBA CAB8 ABC ACB BAC BCA CBA CAB9 yup ypu uyp upy puy pyu None24 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 yup ypu uyp upy puy pyu None26 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup ypu uyp upy puy pyu None13 ABC ACB BAC BCA CBA CAB8 yup ypu uyp upy puy pyu None30 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']6 yup ypu uyp upy puy pyu None32 ABC ACB BAC BCA CBA CAB8 yup ypu uyp upy puy pyu None34 yup ypu uyp upy puy pyu None35 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup ypu uyp upy puy pyu None37 yup ypu uyp upy puy pyu None38 ['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3 yup ypu uyp upy puy pyu None40 ypu 5yup ypu uyp upy puy pyu None42 7['pro', 'por', 'rpo', 'rop', 'opr', 'orp']7 ypu 5yup ypu uyp upy puy pyu None46 7yup ypu uyp upy puy pyu None48 Output: Enter the string : abc All possible strings are : abc acb bac bca cab cba Độ phức tạp về thời gian: O (n*n!) Độ phức tạp thời gian giống như cách tiếp cận trên, tức là có n! hoán vị và nó yêu cầu thời gian O (n) để in hoán vị. O(n*n!) The time complexity is the same as the above approach, i.e. there are n! permutations and it requires O(n) time to print a permutation. Không gian phụ trợ: O (| s |)O(|s|) Làm thế nào để bạn đếm hoán vị của một chuỗi trong Python?Tìm tất cả các hoán vị của một chuỗi trong Python.. nhập itertools .. Nếu __name__ == '__main__':. s = 'abc'. Nums = Danh sách (S). hoán vị = danh sách (itertools. hoán vị (nums)). # Đầu ra: ['ABC', 'ACB', 'BAC', 'BCA', 'Cab', 'CBA']. in ([''. Tham gia (hoán vị) cho hoán vị trong hoán vị]). Hoán vị của một chuỗi có nghĩa là gì?Một hoán vị của một chuỗi là một chuỗi khác chứa cùng các ký tự, chỉ thứ tự của các ký tự có thể khác nhau. Ví dụ, ABCD, và DABC là hoán vị của nhau.another string that contains same characters, only the order of characters can be different. For example, “abcd” and “dabc” are Permutation of each other.
Làm thế nào để bạn tìm thấy hoán vị của một chuỗi?Thuật toán cho hoán vị của một chuỗi trong java, trước tiên chúng ta sẽ lấy ký tự đầu tiên từ chuỗi và hoán vị với các ký tự còn lại.Nếu chuỗi = abc abc đầu tiên char = A và các hoán vị ký tự còn lại là BC và CB.Bây giờ chúng ta có thể chèn char đầu tiên vào các vị trí có sẵn trong các hoán vị.first take the first character from the String and permute with the remaining chars. If String = “ABC” First char = A and remaining chars permutations are BC and CB. Now we can insert first char in the available positions in the permutations.
Làm thế nào để một chức năng hoán vị hoạt động trong Python?Đầu tiên nhập gói ITERTOOLS để thực hiện phương thức hoán vị trong Python.Phương thức này lấy một danh sách làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu chứa tất cả các hoán vị trong một biểu mẫu danh sách.takes a list as an input and returns an object list of tuples that contain all permutations in a list form. |