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

파이썬에서 문자열이 반복 문자열인지 확인하는 프로그램

<시간/>

문자열이 있다고 가정하고 반복 문자열인지 여부를 확인해야 합니다.

따라서 입력이 string ="helloworldhelloworld"와 같으면 출력은 True

가 됩니다.

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

  • n :=s의 크기
  • findFactors() 함수를 정의합니다. n
  • 소요됩니다.
  • f :=새로운 세트
  • i :=1
  • 동안 i * i <=n, do
    • n mod i가 0과 같으면
      • f에 (n / i)의 몫 삽입
      • i를 f에 삽입
    • 나는 :=나는 + 1
  • 반환 f
  • 메인 방법에서 다음을 수행하십시오. -
  • 사실 :=findFactors(n)
  • 사실상 각각의 i에 대해 다음을 수행합니다.
    • i가 n과 같으면
      • 다음 반복으로 이동
    • ss :=s[인덱스 0에서 i-1까지]
    • val :=s의 ss 발생
    • val이 (n/i)의 몫과 같으면
      • 참 반환
  • 거짓을 반환

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

예시

class Solution:
   def solve(self, s):
      n = len(s)
      def findFactors(n):
         f = set()
         i = 1
         while(i * i <= n):
            if(n % i == 0):
               f.add(int(n / i))
               f.add(i)
            i+= 1
            return f
         fact = findFactors(n)
         for i in fact:
            if(i == n):
               continue
            ss = s[:i]
            val = s.count(ss)
            if(val == int(n / i)):
               return True
         return False
ob = Solution()
print(ob.solve("helloworldhelloworld"))

입력

"helloworldhelloworld"

출력

True