Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

문자열을 확인하는 프로그램은 파이썬에서 주어진 단어 목록으로 나눌 수 있는지 여부

<시간/>

단어 목록과 공백이 없는 다른 문자열이 있다고 가정합니다. 단어 목록을 사용하여 문자열을 분해할 수 있는지 여부를 확인해야 합니다.

따라서 입력이 단어 =["love", "python", "we", "programming", "language"] s ="welovepythonprogramming"과 같으면 출력은 True

가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • words :=모든 고유한 단어의 새로운 세트
  • rec() 함수를 정의합니다. 이것은 내가 걸릴 것입니다
  • i가 s의 크기와 같으면
    • 참 반환
  • acc :=빈 문자열
  • i 범위에서 s 크기의 j에 대해 다음을 수행합니다.
    • acc :=acc 연결 s[j]
    • acc가 단어로 된 경우
      • rec(j + 1)이 참이면
        • 참 반환
  • 거짓을 반환
  • 메인 메서드에서 rec(0)을 호출하고 결과를 반환합니다.

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

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))

입력

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

출력

True