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

โปรแกรมสร้างสตริงที่น้อยที่สุดจากสองสตริงใน python


สมมติว่าเรามีสองสตริง เราต้องการสร้างสตริงขั้นต่ำของคำศัพท์จากสตริงเหล่านั้น ในการสร้างสตริง เราเปรียบเทียบอักษรตัวแรกของทั้งสองสตริง และแยกอักษรที่มีขนาดเล็กกว่าตามคำศัพท์ออกจากสตริงใดสตริงหนึ่ง ในกรณีของเนคไท คือ ตัวอักษรจะเหมือนกัน เราแยกจดหมายออกจากสตริงแรก เราทำซ้ำขั้นตอนนี้จนกว่าสตริงทั้งสองจะว่างเปล่า ต้องส่งคืนสตริงขั้นต่ำที่สร้างขึ้น

ดังนั้น หากอินพุตเป็นเหมือน input_1 ='TUTORIALS', input_2 ='POINT' ผลลัพธ์จะเป็น POINTTUTORIALS

หากเราเปรียบเทียบทั้งสองสาย เราจะได้สิ่งนี้ทีละขั้นตอน -

TUTORIALS POINT
TUTORIALS OINT = P
TUTORIALS INT = PO
TUTORIALS NT = POI
TUTORIALS T = POIN
TUTORIALS = POINT

เนื่องจากสตริงใดสตริงหนึ่งว่างเปล่า ตอนนี้สตริงแรกทั้งหมดจะถูกวางไว้ในสตริงขั้นต่ำที่เป็นผลลัพธ์ ดังนั้น สตริงสุดท้ายคือ POINTTUTORIALS

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • input_1 :=input_1 + "z"
  • input_2 :=input_2 + "z"
  • temp_1 :=0
  • temp_2 :=0
  • res_str :=สตริงว่าง
  • ในขณะที่ temp_1 <ขนาดของ input_1 และ temp_2 <ขนาดของ input_2 ให้ทำ
    • ถ้า input_1[จากดัชนี temp_1 ถึงปลายสตริง]
    • res_str :=res_str + input_1[temp_1]
    • temp_1 :=temp_1 + 1
  • มิฉะนั้น
    • res_str :=res_str + input_2[temp_2]
    • temp_2 :=temp_2 + 1
  • res_str :=res_str[จากดัชนี 0 ถึงองค์ประกอบสุดท้ายที่สองของสตริง]
  • ถ้า temp_1 <ความยาวของ (input_1) แล้ว
    • res_str :=res_str + input_1[จากดัชนี temp_1 ถึงองค์ประกอบสุดท้ายที่สองของสตริง]
  • ถ้า temp_2 <ความยาวของ (input_2) แล้ว
    • res_str :=res_str + input_2[จากดัชนี temp_2 ถึงองค์ประกอบสุดท้ายที่สองของสตริง]
  • ผลตอบแทน res_str
  • ตัวอย่าง

    ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

    def solve(input_1, input_2):
       input_1 += "z"
       input_2 += "z"
       temp_1 = 0
       temp_2 = 0
       res_str = ""
       while temp_1 < len(input_1) and temp_2 < len(input_2):
          if input_1[temp_1:] < input_2[temp_2:]:
             res_str += input_1[temp_1]
             temp_1 += 1
          else:
             res_str += input_2[temp_2]
             temp_2 += 1
       res_str = res_str[:-1]
       if temp_1 < len(input_1):
          res_str += input_1[temp_1:-1]
       if temp_2 < len(input_2):
          res_str += input_2[temp_2:-1]
       return res_str
    
    print(solve('TUTORIALS', 'POINT'))

    อินพุต

    'TUTORIALS', 'POINT'

    ผลลัพธ์

    POINTTUTORIALS