Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra một chuỗi có thể được chia thành danh sách các từ nhất định hay không trong python

Giả sử chúng ta có một danh sách từ và một chuỗi s khác không có khoảng trắng. Chúng tôi phải kiểm tra xem chuỗi có thể được chia nhỏ bằng cách sử dụng danh sách các từ hay không.

Vì vậy, nếu đầu vào giống như words =["love", "python", "we", "programming", "language"] s ="Welovepythonprogramming", thì đầu ra sẽ là True

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

  • words:=một tập hợp mới gồm tất cả các từ duy nhất
  • Xác định một hàm rec (). Điều này sẽ khiến tôi mất
  • nếu tôi giống với kích thước của s, thì
    • trả về True
  • acc:=chuỗi trống
  • đối với j trong phạm vi i đến kích thước của s, thực hiện
    • acc:=acc nối s [j]
    • nếu acc ở dạng word, thì
      • nếu rec (j + 1) là True, thì
        • trả về True
  • trả về Sai
  • Từ phương thức chính gọi rec (0) và trả về kết quả

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

class Solution:
   def solve(self, words, s):
      words = set(words)

      def rec(i=0):
         if i == len(s):
            return True
         acc = ""
         for j in range(i, len(s)):
            acc += s[j]
            if acc in words:
               if rec(j + 1):
                  return True
         return False

      return rec()
     
ob = Solution()
words = ["love", "python", "we", "programming", "language"]
s = "welovepythonprogramming"
print(ob.solve(words, s))

Đầu vào

["love", "python", "we", "programming", "language"], "welovepythonprogramming"

Đầu ra

True