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

Python을 사용하지 않는 바이너리 문자열의 세그먼트가 최대 1개인지 확인하는 프로그램

<시간/>

(앞에 0이 없는) 이진 문자열 s가 있다고 가정하고 s에 1의 연속된 세그먼트가 최대 하나 포함되어 있는지 확인해야 합니다.

따라서 입력이 s ="11100"과 같으면 "111"의 세그먼트가 하나 있으므로 출력은 True가 됩니다.

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

  • 개수 :=-1

  • s의 크기가 1과 같으면

    • 참을 반환

  • s의 각 i에 대해 수행

    • i가 "1"과 같고 count> -1이면

      • 거짓을 반환

    • 그렇지 않으면 i가 "0"과 같을 때

      • 개수 :=개수 + 1

  • 참을 반환

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

def solve(s):
   count = -1
   if len(s)==1:
      return True
   for i in s:
         if i=="1" and count>-1:
            return False
         elif i=="0":
            count+=1
   return True
s = "11100"
print(solve(s))

입력

11100

출력

True