เมื่อจำเป็นต้องรับการทำซ้ำอักขระของอักขระที่กำหนด วิธีการถูกกำหนดโดยใช้ค่าดัชนีเพื่อพิมพ์การซ้ำซ้อน
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน
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)
ผลลัพธ์
The string is : MQ All permutations with repetition of MQ are... MM MQ QM QQ
คำอธิบาย
-
มีการกำหนดเมธอดชื่อ 'to_string' ซึ่งรับรายการเป็นพารามิเตอร์และส่งกลับโดยการรวมค่าทั้งหมดเข้าด้วยกัน
-
มีการกำหนดวิธีการอื่นที่ชื่อว่า 'lex_recurrence' ซึ่งรับสตริง ค่าดัชนีเป็นพารามิเตอร์
-
โดยจะวนซ้ำตามความยาวของสตริง และตรวจสอบเพื่อดูว่าค่าสุดท้ายและค่าดัชนีเหมือนกันหรือไม่
-
หากใช่ ระบบจะพิมพ์เป็นหนึ่งในชุดค่าผสม
-
มิฉะนั้น เมธอดจะถูกเรียกอีกครั้งโดยเพิ่มค่าของดัชนี
-
มีการกำหนดเมธอดอื่นที่ชื่อว่า 'all_lex' ที่เรียงลำดับสตริงโดยใช้เมธอด 'sorted' และเรียกเมธอดก่อนหน้าอีกครั้ง
-
นอกเมธอด จะมีการกำหนดสตริงและแสดงบนคอนโซล
-
เอาต์พุตจะแสดงบนคอนโซล