문자열 s와 다른 문자열 t가 패턴으로 있다고 가정하고 s의 문자가 t에 있는 문자에 의해 결정된 것과 같은 순서를 따르는지 확인해야 합니다. 여기서는 패턴에 중복 문자가 없습니다.
따라서 입력이 s ="hello world" t ="hw"와 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- s의 크기
- 거짓을 반환
- 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