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

Python에서 연속적인 공통 문자로 부분 문자열의 길이를 찾는 프로그램

<시간/>

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