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

문자열이 Python에서 패턴으로 정의된 문자 순서를 따르는지 확인하십시오.

<시간/>

문자열 s와 다른 문자열 t가 패턴으로 있다고 가정하고 s의 문자가 t에 있는 문자에 의해 결정된 것과 같은 순서를 따르는지 확인해야 합니다. 여기서는 패턴에 중복 문자가 없습니다.

따라서 입력이 s ="hello world" t ="hw"와 같으면 출력은 True가 됩니다.

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

  • s의 크기
  • 거짓을 반환
  • 0에서 t - 2 사이의 범위에 있는 i에 대해
    • x :=t[i], y :=t[i + 1]
    • right :=s에 있는 x의 마지막 인덱스
    • left :=s에 있는 x의 첫 번째 인덱스
    • 오른쪽이 -1이거나 왼쪽이 -1이거나 오른쪽> 왼쪽이면
      • 거짓을 반환
  • 참 반환
  • 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

    예시 코드

    def solve(s, t):
       if len(s) < len(t) :
          return False
     
       for i in range(len(t) - 1):
          x = t[i]
          y = t[i + 1]
     
          right = s.rindex(x)
          left = s.index(y)
     
          if right == -1 or left == -1 or right > left:
             return False
    
       return True
    
    s = "hello world"
    t = "hw"
    print(solve(s, t))

    입력

    "hello world", "hw"

    출력

    True