สมมติว่าเรามีสองสตริง เราต้องการสร้างสตริงขั้นต่ำของคำศัพท์จากสตริงเหล่านั้น ในการสร้างสตริง เราเปรียบเทียบอักษรตัวแรกของทั้งสองสตริง และแยกอักษรที่มีขนาดเล็กกว่าตามคำศัพท์ออกจากสตริงใดสตริงหนึ่ง ในกรณีของเนคไท คือ ตัวอักษรจะเหมือนกัน เราแยกจดหมายออกจากสตริงแรก เราทำซ้ำขั้นตอนนี้จนกว่าสตริงทั้งสองจะว่างเปล่า ต้องส่งคืนสตริงขั้นต่ำที่สร้างขึ้น
ดังนั้น หากอินพุตเป็นเหมือน 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
- ถ้า input_1[จากดัชนี temp_1 ถึงปลายสตริง]
- มิฉะนั้น
- res_str :=res_str + input_2[temp_2]
- temp_2 :=temp_2 + 1
- res_str :=res_str + input_1[จากดัชนี temp_1 ถึงองค์ประกอบสุดท้ายที่สองของสตริง]
- res_str :=res_str + input_2[จากดัชนี temp_2 ถึงองค์ประกอบสุดท้ายที่สองของสตริง]
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
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