สมมติว่าเรามีรายการสตริงอักษรตัวพิมพ์เล็กที่เรียกว่าคำ เราต้องหาความยาวของรายการย่อยที่ต่อเนื่องกันโดยที่ตัวอักษรตัวแรกของแต่ละคำมีตัวอักษรตัวแรกเหมือนกัน
ดังนั้น หากอินพุตเป็นเหมือนคำ =["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