(앞에 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