문자열 s가 있다고 가정하고 동일한 문자를 가진 가장 긴 부분 문자열의 길이를 찾아야 합니다.
따라서 입력이 "abbbaccabbbba"와 같으면 4개의 연속 b가 있으므로 출력은 4가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- s의 크기가 0이면
- 0을 반환
- s :=공백 연결
- ct:=1, 시간:=1
- 0에서 s -2 크기의 범위에 있는 i에 대해 다음을 수행합니다.
- s[i]가 s[i+1]과 같으면
- 항목 :=항목 + 1
- 그렇지 않으면
- ct:=temp 및 ct의 최대값
- 항목:=1
- s[i]가 s[i+1]과 같으면
- ct를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, s): if len(s)==0: return 0 s+=' ' ct=1 tem=1 for i in range(len(s)-1): if s[i]==s[i+1]: tem+=1 else: ct=max(tem,ct) tem=1 return ct ob = Solution() print(ob.solve("abbbaccabbbba"))
입력
"abbbaccabbbba"
출력
4