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

Python을 사용하여 바이너리 문자열을 사용하여 전구 스위처를 만드는 프로그램

<시간/>

방에 n개의 전구가 있다고 가정하고 이 전구의 번호는 0에서 n-1까지입니다. 우리는 그것들을 왼쪽에서 오른쪽으로 일렬로 배열해야 합니다. 처음에는 모든 전구가 꺼집니다(0 상태). i번째 전구가 켜져 있으면 t[i]가 '1'이고 꺼져 있으면 '0'인 지정된 대상 배열 't'로 표시되는 구성을 가져와야 합니다. 전구의 상태를 뒤집는 스위치도 있습니다. 그리고 뒤집기 연산은 다음과 같이 정의됩니다 -

  • 전구 색인 i를 선택하십시오.

  • 각 전구를 인덱스 i에서 인덱스 n - 1로 뒤집습니다.

목표를 형성하는 데 필요한 최소 뒤집기 횟수를 찾아야 합니다.

따라서 입력이 t ="0101"과 같으면 출력은 3이되고 두 번째 전구에서 시작하면 다음 구성은 "0111"이되고 세 번째 구성에서는 "0100"이되고 마지막으로 뒤집습니다. 전구를 사용하여 "0101"로 만듭니다.

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

  • 개수 :=0

  • x :='0'

  • t의 각 i에 대해 수행

    • i가 x와 같지 않으면

      • 개수 :=개수 + 1

      • x :=나는

  • 반환 횟수

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

예시

def solve(t):count =0 x ='0' for i in t:if i !=x:count +=1 x =i return countt ="0101"print(solve(t)) 

입력

"0101"

출력

3