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

โปรแกรมค้นหาความยาวของชุดคำที่ยาวที่สุดใน Python?


สมมติว่าเรามีรายการคำที่ถูกต้อง และมีสตริง s ด้วย เราต้องหาความยาวของคำที่ลดจำนวนลงที่ยาวที่สุด ซึ่งสร้างขึ้นได้โดยการเริ่มที่ s และนำอักษรเดี่ยวออก และยังคงสร้างคำที่ถูกต้อง

ดังนั้น หากการป้อนเป็นเหมือนคำ =["lii", "limit", "limi", "li", "coffee", "jug", "pool", "type"] s ="limit" แล้ว เอาต์พุตจะเป็น 4 ดังที่เราสามารถสร้าง chain ได้ โดยเริ่มจากคำว่า "limit", "limit" ->"limi" -> "lii" -> "li"

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

  • กำหนดฟังก์ชัน Solve() นี่ต้องใช้คำพูดนะ s

  • max_num :=0

  • สำหรับแต่ละฉันในคำพูดทำ

    • ถ้าฉันเหมือนกับ s แล้ว

      • สำหรับ j ในช่วง 0 ถึงขนาดของ s ทำ

        • max_num :=สูงสุด 1 + แก้ (คำ s[จากดัชนี 0 ถึง j-1]ต่อกัน s[จากดัชนี j + 1 ถึงปลาย]) และ max_num

  • คืนค่า max_num


ตัวอย่าง

class Solution:
   def solve(self, words, s):
      max_num = 0
      for i in words:
         if i == s:
            for j in range(len(s)):
               max_num = max(1 + self.solve(words, s[:j] + s[j + 1 :]), max_num)
      return max_num

ob = Solution()
words = ["lii", "limit", "limi", "li", "coffee", "jug", "pool", "type"]
s = "limit"
print(ob.solve(words, s))

อินพุต

["lii", "limit", "limi", "li", "coffee", "jug", "pool", "type"],"limit"

ผลลัพธ์

4