สมมติว่าเรามีรายการสตริงอักษรตัวพิมพ์เล็กที่เรียกว่าคำ เราต้องหาความยาวของรายการย่อยที่ต่อเนื่องกันโดยที่ตัวอักษรตัวแรกของแต่ละคำมีตัวอักษรตัวแรกเหมือนกัน
ดังนั้น หากอินพุตเป็นเหมือนคำ =["she", "sell", "seashells", "on", "the", "sea", "shore"] ผลลัพธ์จะเป็น 3 รายการย่อยที่ต่อเนื่องกันที่ยาวที่สุด คือ ["เธอ", "ขาย", "เปลือกหอย"] คำนำหน้าอักษรตัวแรกคือ 's'
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
cnt :=1
-
maxcnt :=0
-
prev_char :=สตริงว่าง
-
สำหรับแต่ละคำในคำ ทำ
-
ถ้า prev_char ว่างเปล่า แสดงว่า
-
prev_char :=อักษรตัวแรกของคำ
-
-
มิฉะนั้น เมื่อ prev_char เหมือนกับอักษรตัวแรกของคำ ดังนั้น
-
cnt :=cnt + 1
-
-
มิฉะนั้น
-
prev_char :=อักษรตัวแรกของคำ
-
cnt :=1
-
-
maxcnt :=สูงสุดของ maxcnt และ cnt
-
-
ผลตอบแทนสูงสุด
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(words):
cnt = 1
maxcnt = 0
prev_char = ""
for word in words:
if prev_char == "":
prev_char = word[0]
elif prev_char == word[0]:
cnt += 1
else:
prev_char = word[0]
cnt = 1
maxcnt = max(maxcnt, cnt)
return maxcnt
words = ["she", "sells", "seashells", "on", "the", "sea", "shore"]
print(solve(words)) อินพุต
["she", "sells", "seashells", "on", "the", "sea", "shore"]
ผลลัพธ์
3