সমস্যা বিবরণ
দুটি বিশেষ ক্যারেক্টার: ১-বিট = 0, ২-বিট = 10 বা 11। একটি বিট স্ট্রিং দেওয়া থাকে যা সবসময় 0 দিয়ে শেষ হয়। শেষ ক্যারেক্টারটি ১-বিট ক্যারেক্টার (0) কিনা তা যাচাই করুন।
উদাহরণ
bits = [1,0,0] → আউটপুট: True
ডিকোড: 10 (২-বিট) + 0 (১-বিট) → শেষটি ১-বিট।
এলগরিদম
i = 0।while i < len(bits) - 1(শেষ ০ বাদে):- যদি
bits[i] == 1→i += 2(২-বিট ক্যারেক্টার)। - অন্যথায় →
i += 1(১-বিট ক্যারেক্টার)।
- যদি
- লুপ শেষ হলে
i == len(bits) - 1হলেTrue(শেষ ০ অটকে আছে), অন্যথায়False।
পাইথন বাস্তবায়ন
class Solution:
def isOneBitCharacter(self, bits):
i = 0
while i < len(bits) - 1:
i += 2 if bits[i] == 1 else 1
return i == len(bits) - 1
ob = Solution()
print(ob.isOneBitCharacter([1,0,0])) # True
print(ob.isOneBitCharacter([1,1,1,0])) # False
ইনপুট / আউটপুট
ইনপুট: [1,0,0] আউটপুট: True