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