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

โปรแกรมค้นหาความยาวของรายการย่อยที่ต่อเนื่องกันด้วยคำที่มีอักษรตัวแรกเหมือนกันใน Python


สมมติว่าเรามีรายการสตริงอักษรตัวพิมพ์เล็กที่เรียกว่าคำ เราต้องหาความยาวของรายการย่อยที่ต่อเนื่องกันโดยที่ตัวอักษรตัวแรกของแต่ละคำมีตัวอักษรตัวแรกเหมือนกัน

ดังนั้น หากอินพุตเป็นเหมือนคำ =["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