Hướng dẫn longest word in dictionary python - từ dài nhất trong từ điển python

Giả sử chúng ta có một danh sách các từ đại diện cho một từ điển tiếng Anh, chúng ta phải tìm từ dài nhất trong danh sách từ đã cho có thể được xây dựng một ký tự tại một thời điểm bằng các từ khác bằng lời nói. Nếu có nhiều hơn một câu trả lời có thể, thì hãy trả lại từ dài nhất với thứ tự từ vựng nhỏ nhất. Nếu không có câu trả lời, thì hãy trả lại chuỗi trống.

Vì vậy, nếu đầu vào giống như ["H", "he", "hel", "địa ngục", "xin chào"], thì đầu ra sẽ là "xin chào"

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước này -

  • Trie: = một bản đồ mới
  • Xác định một hàm chèn []. Điều này sẽ lấy lời
  • Bây giờ: = Trie
  • Đối với mỗi C trong từ, làm
    • Nếu c không ở bây giờ -
      • Bây giờ [c] = {'#', false}, sau đó
    • Bây giờ: = Bây giờ [C]
    • Bây giờ ['#']: = true
  • Xác định một tìm kiếm chức năng []. Điều này sẽ lấy lời
  • Bây giờ: = Trie
  • Đối với mỗi C trong từ, làm
    • Nếu c không ở bây giờ -
      • Bây giờ [c] = {'#', false}, sau đó
    • Bây giờ: = Bây giờ [C]
    • Bây giờ ['#']: = true
  • Xác định một tìm kiếm chức năng []. Điều này sẽ lấy lời
    • Nếu '#' trong bây giờ và không phải bây giờ ['#'] là đúng, thì
  • trả lại sai
  • Xác định một tìm kiếm chức năng []. Điều này sẽ lấy lời
    • Nếu '#' trong bây giờ và không phải bây giờ ['#'] là đúng, thì
      • trả lại sai
  • trả lại ngay bây giờ ['#']

Đối với mỗi từ trong các từ, hãy làm

Gọi Chèn [Word]

Ans: = Chuỗi trống

class Solution:
   def longestWord[self, words]:
      self.trie = {}
   def insert[word]:
      now = self.trie
      for c in word:
         if c not in now: now[c] = {'#': False}
            now = now[c]
         now['#'] = True
   def search[word]:
      now = self.trie
      for c in word:
         if '#' in now and not now['#']: return False
            now = now[c]
         return now['#']
         for word in words:
            insert[word]
         ans = ""
         for word in words:
            if [search[word] and [len[word] > len[ans] or [len[word] == len[ans] and word    < ans]]]:
         ans = word
      return ans
ob = Solution[]
print[ob.longestWord[["h","he","hel","hell", "hello"]]]

Nếu tìm kiếm [từ] và [kích thước của từ> kích thước của ANS hoặc [kích thước của từ giống như kích thước của ANS và WORD

Bài Viết Liên Quan

Chủ Đề