문자열 s와 부분 문자열 t가 있다고 가정합니다. s에서 t가 몇 번 발생하는지 계산해야 합니다.
따라서 입력이 s ="abaabcaabababaab", t ="aab"와 같으면 하위 문자열이 ab(aab)c(aab)abab(aab)이므로 출력은 3이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- cnt :=0
- 0에서 (s의 크기 - t의 크기) 범위에 있는 i에 대해
- s[인덱스 i에서 i까지 + t - 1의 크기]의 부분 문자열이 t와 같으면
- cnt :=cnt + 1
- s[인덱스 i에서 i까지 + t - 1의 크기]의 부분 문자열이 t와 같으면
- 반환 cnt
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
def solve(s, t):
cnt = 0
for i in range(0, len(s) - len(t) + 1):
if s[i:i + len(t)] == t:
cnt = cnt + 1
return cnt
s = "abaabcaabababaab"
t = "aab"
print(solve(s, t)) 입력
"abaabcaabababaab", "aab"
출력
3