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