문자열 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