ধরুন আমাদের দুটি বিশেষ চরিত্র আছে। প্রথম অক্ষরটি এক বিট 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