Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - การรวมสตริงการทำซ้ำอักขระ


เมื่อจำเป็นต้องรับการทำซ้ำอักขระของอักขระที่กำหนด วิธีการถูกกำหนดโดยใช้ค่าดัชนีเพื่อพิมพ์การซ้ำซ้อน

ตัวอย่าง

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน

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' และเรียกเมธอดก่อนหน้าอีกครั้ง

  • นอกเมธอด จะมีการกำหนดสตริงและแสดงบนคอนโซล

  • เอาต์พุตจะแสดงบนคอนโซล