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

이진 문자열의 모든 1이 Python에서 등거리인지 확인하십시오.

<시간/>

이진 문자열 str이 있다고 가정하고 문자열의 모든 1이 등거리인지 여부를 확인해야 합니다. 즉, 두 개의 1 사이의 거리는 동일합니다. 그리고 문자열에는 1이 두 개 이상 포함되어 있습니다.

따라서 입력이 s ="100001000010000"과 같으면 1이 서로 거리 4에 있으므로 출력은 True가 됩니다.

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

  • 색인 :=새 목록
  • 0에서 s 크기의 범위에 있는 i에 대해 다음을 수행합니다.
    • s[i]가 1과 같으면
      • 색인 끝에 i 삽입
  • t :=인덱스 크기
  • 1 ~ t - 1 범위의 i에 대해 다음을 수행합니다.
    • (index[i] - index[i - 1])이 (index[1] - index[0])과 같지 않으면
      • 거짓을 반환
  • 참 반환

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

def solve(s):
   index = []
   for i in range(len(s)):
      if s[i] == '1':
         index.append(i)
   t = len(index)
   for i in range(1, t):
      if (index[i] - index[i - 1]) != (index[1] - index[0]):
         return False
   return True
s = "100001000010000"
print(solve(s))

입력

"100001000010000"

출력

True