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

Python의 회문 부분 문자열


문자열이 있다고 가정합니다. 이 문자열에 얼마나 많은 회문 부분 문자열이 있는지 계산해야 합니다. 시작 인덱스 또는 끝 인덱스가 다른 하위 문자열은 동일한 문자로 구성되어 있어도 다른 하위 문자열로 계산됩니다. 따라서 입력이 "aaa"와 같으면 "a", "a", "a", "aa", "aa", "aaa"와 같은 6개의 회문 부분 문자열이 있으므로 출력은 6이 됩니다.

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

  • 카운트:=0
  • 문자열
      인 경우 길이 0 범위의 i에 대해
    • 범위 i + 1에서 문자열 길이 + 1까지의 j에 대해
      • temp :=인덱스 i에서 j까지의 부분 문자열
      • 온도가 회문이면 1만큼 카운트를 늘립니다.
  • 반품 카운터

예시(파이썬)

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def countSubstrings(self, s):
      counter = 0
      for i in range(len(s)):
         for j in range(i+1,len(s)+1):
            temp = s[i:j]
            if temp == temp[::-1]:
               counter+=1
      return counter
ob1 = Solution()
print(ob1.countSubstrings("aaaa"))

입력

"aaaa"

출력

10