Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Tổ hợp lặp ký tự trong chuỗi

Khi cần lấy các lặp lại ký tự của một ký tự cho trước, ta định nghĩa phương thức dùng giá trị chỉ mục để in các lần lặp.

Ví dụ

def to_string(my_list):
    return ''.join(my_list)

def lex_recurrence(my_string, my_data, last_val, index_val):
    length = len(my_string)
    for i in range(length):
        my_data[index_val] = my_string[i]
        if index_val == last_val:
            print(to_string(my_data))
        else:
            lex_recurrence(my_string, my_data, last_val, index_val + 1)

def all_lex(my_string):
    length = len(my_string)
    my_data = [""] * (length + 1)
    my_string = sorted(my_string)
    lex_recurrence(my_string, my_data, length - 1, 0)

my_string = "MQ"
print("The string is:")
print(my_string)
print("All permutations with repetition of " + my_string + " are...")
all_lex(my_string)

Đầu ra

The string is: MQ
All permutations with repetition of MQ are...
MM
MQ
QM
QQ

Giải thích

  • Hàm to_string nối list thành chuỗi.
  • Hàm lex_recurrence đệ quy sinh hoán vị có lặp.
  • Hàm all_lex sắp xếp chuỗi và gọi hàm đệ quy.
  • Định nghĩa chuỗi, hiển thị, gọi hàm.