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

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


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

ดังนั้น หากอินพุตเป็นเหมือน ["เธอ", "ขาย", "เปลือกหอย", "บน", "ที่", "ชายทะเล"] ผลลัพธ์จะเป็น 3 เนื่องจากคำสามคำที่อยู่ติดกันคือ "เธอ", "ขาย" , "เปลือกหอย" ทุกตัวมี 's' ตัวแรกเหมือนกัน

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

  • ความยาวสูงสุด :=0
  • curr_letter :=Null, curr_length :=0
  • สำหรับแต่ละคำในคำ ทำ
    • ถ้า curr_letter เป็นโมฆะหรือ curr_letter ไม่เหมือนกับ word[0] ดังนั้น
      • ความยาวสูงสุด :=ความยาวสูงสุด, curr_length
      • curr_letter :=word[0], curr_length :=1
    • มิฉะนั้น
      • curr_length :=curr_length + 1
  • คืนค่าสูงสุดของความยาวสูงสุดและความยาวสูงสุด

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

ตัวอย่าง

class Solution:
   def solve(self, words):
      maxlength = 0
      curr_letter, curr_length = None, 0
      for word in words:
         if not curr_letter or curr_letter != word[0]:
            maxlength = max(maxlength, curr_length)
            curr_letter, curr_length = word[0], 1
         else:
            curr_length += 1
      return max(maxlength, curr_length)
ob = Solution()
words = ["she", "sells", "seashells", "on", "the", "seashore"]
print(ob.solve(words))

อินพุต

["she", "sells", "seashells", "on", "the", "seashore"]

ผลลัพธ์

3