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

Python에서 주어진 문자열을 4개의 고유한 문자열로 분할할 수 있는지 확인

<시간/>

문자열 s가 있다고 가정하고 각각이 비어 있지 않고 고유하도록 4개의 하위 문자열로 분할할 수 있는지 확인해야 합니다.

따라서 입력이 s ="helloworld"와 같으면 가능한 하위 문자열 집합 중 하나가 ["hel", "lo", "wor", "ld"]

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

  • 크기가 s>=10이면
    • 참 반환
  • 범위 1에서 s - 1 크기의 i에 대해
    • i + 1 범위에서 s - 1 크기의 j에 대해
      • j + 1 범위에서 s - 1 크기의 k에 대해
        • sub1 :=s[인덱스 0에서 i - 1까지]
        • sub2 :=s[인덱스 i에서 j - i - 1까지]
        • sub3 :=s[인덱스 j에서 k - j - 1까지]
        • sub4 :=s[인덱스 k에서 s - k - 1의 크기까지]
        • sub1 sub2 sub3 및 sub4가 모두 별개인 경우
          • 참 반환
  • 거짓을 반환

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

def solve(s):
   if len(s) >= 10:
      return True
   for i in range(1, len(s)):
      for j in range(i + 1, len(s)):
         for k in range(j + 1, len(s)):
            sub1 = s[0:i]
            sub2 = s[i:j - i]
            sub3 = s[j: k - j]
            sub4 = s[k: len(s) - k]
            if sub1 != sub2 and sub1 != sub3 and sub1 != sub4 and sub2 != sub3 and sub2 != sub4 and sub3 != sub4:
               return True
   return False
s = "helloworld"
print (solve(s))

입력

"helloworld"

출력

True