मान लीजिए हमारे पास दो विशेष वर्ण हैं। पहला वर्ण एक बिट 0 द्वारा दर्शाया जा सकता है। और दूसरा वर्ण दो बिट्स जैसे (10 या 11) द्वारा दर्शाया जा सकता है। इसलिए, यदि हमारे पास कई बिट्स द्वारा दर्शाया गया एक स्ट्रिंग है। हमें जांचना है कि क्या अंतिम वर्ण एक-बिट वर्ण होना चाहिए या नहीं। दी गई स्ट्रिंग हमेशा शून्य से समाप्त होगी।
उदाहरण के लिए, यदि इनपुट [1,0,0] है, तो आउटपुट True होगा, क्योंकि इसे डिकोड करने का एकमात्र तरीका दो-बिट वर्ण (10) और एक-बिट वर्ण (0) है। इसलिए, अंतिम वर्ण एक-बिट वर्ण है।
हल करने के चरण
- जब तक bits का आकार > 1:
- current := bits का पहला तत्व, फिर bits से पहला तत्व हटाएं
- यदि current 1 के बराबर है, तो:
- bits से पहला तत्व हटाएं
- यदि bits का आकार 0 के बराबर है, तो:
- False वापस करें
- यदि 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