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

โปรแกรมหาความยาวที่ยาวที่สุด ทำได้โดยใช้ตัวอักษรที่กำหนดใน Python


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

ดังนั้นหากอินพุตเป็นคำ =["dog", "cat", "rat", "bunny", "lion", "bat"], ตัวอักษร ="gabctnyu" ผลลัพธ์จะเป็น 3 ตามที่เรา สามารถสร้างคำว่า "cat" หรือ "bat" ได้ ดังนั้นความยาวสูงสุดคือ 3

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

  • ref :=แผนที่ที่มีตัวอักษรและความถี่
  • สูงสุด :=0
  • สำหรับแต่ละคำในคำ ทำ
    • w :=แผนที่ที่มีตัวอักษรของคำและความถี่
    • l :=ขนาดของคำ
    • ตัวนับ :=0
    • สำหรับแต่ละ k ใน w ทำ
      • ถ้า w[k] <=ref[k] แล้ว
        • เคาน์เตอร์ :=เคาน์เตอร์ + 1
      • มิฉะนั้น
        • ออกมาจากวงจร
    • ถ้า l> max และขนาดของ w เท่ากับตัวนับ แล้ว
      • สูงสุด :=ล
  • ผลตอบแทนสูงสุด

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

ตัวอย่าง

from collections import Counter
class Solution:
   def solve(self, words, letters):
      ref = Counter(letters)
      max = 0
      for word in words :
         w = Counter(word)
         l = len(word)
         counter = 0
         for k in w :
            if w[k] <= ref[k]:
               counter+=1
               pass
            else :
               break
               if l > max and len(w) == counter:
                  max = l
         return max
ob = Solution()
words = ["dog", "cat", "rat", "bunny", "lion", "bat"]
letters = "gabctnyu" print(ob.solve(words, letters))

อินพุต

["dog", "cat", "rat", "bunny", "lion", "bat"], "gabctnyu"

ผลลัพธ์

3