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

Python의 1비트 및 2비트 문자

<시간/>

두 개의 특수 문자가 있다고 가정합니다. 첫 번째 문자는 하나의 비트 0으로 나타낼 수 있습니다. 두 번째 문자는 (10 또는 11)과 같이 두 비트로 나타낼 수 있습니다. 따라서 여러 비트로 표시되는 문자열이 있는 경우. 마지막 문자가 1비트 문자여야 하는지 여부를 확인해야 합니다. 주어진 문자열은 항상 0으로 끝납니다.

따라서 입력이 [1,0,0]과 같으면 출력은 True가 됩니다. 디코딩하는 유일한 방법은 2비트 문자(10)와 1비트 문자(0)뿐입니다. 따라서 마지막 문자는 1비트 문자입니다.

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

  • 비트 크기> 1일 때 수행
  • current :=비트의 첫 번째 요소, 다음 비트에서 첫 번째 요소 삭제
  • 전류가 1과 같으면
    • 비트에서 첫 번째 요소 삭제
  • 비트의 크기가 0이면
    • 거짓을 반환
  • bits[0]이 0과 같으면 true를 반환하고, 그렇지 않으면 false를 반환

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

예시

class Solution:
   def isOneBitCharacter(self, bits):
      while len(bits) > 1:
         current = bits.pop(0)
         if current == 1:
            bits.pop(0)
      if len(bits) == 0:
         return False
      return bits[0] == 0
ob = Solution()
print(ob.isOneBitCharacter([1,0,0]))

입력

[1,0,0]

출력

True