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

Python의 시퀀스에서 최대 k-반복 부분 문자열을 찾는 프로그램

<시간/>

s라는 일련의 문자가 있다고 가정하고 w가 k번 연결되면 문자열 w는 k-반복되는 문자열이라고 합니다. w의 최대 k-반복 값은 w가 순차적으로 k-반복되는 가장 높은 값 k가 됩니다. 그리고 w가 주어진 시퀀스의 부분 문자열이 아닌 경우 w의 최대 k-반복 값은 0입니다. 따라서 s와 w가 있으면 시퀀스에서 w의 최대 k-반복 값을 찾아야 합니다.

따라서 입력이 s ="papaya" w ="pa"와 같으면 w ="pa"가 "papaya"에 두 번 존재하므로 출력은 2가 됩니다.

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

  • 개수:=s에 있는 w의 수

  • Count가 0과 같으면

    • 0 반환

  • 범위에 있는 i의 경우 0으로 계산하고 1씩 감소합니다.

    • w의 i 반복이 s에 있으면

      • 반환 i

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(s, w):
   Count=s.count(w)
   if Count==0:
      return 0
   for i in range(Count,0,-1):

      if w*i in s:
         return i

s = "papaya"
w = "pa"
print(solve(s, w))

입력

"papaya", "pa"

출력

2