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

문자열에 존재하는 하위 문자열의 수를 계산하는 Python 프로그램

<시간/>

문자열 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
  • 반환 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