ধরুন একটি দশমিক সংখ্যাটিকে প্রথমে একটি বড় হাতের হেক্সাডেসিমেল স্ট্রিং-এ রূপান্তর করে তার হেক্সস্পিক উপস্থাপনায় রূপান্তরিত করা যেতে পারে, তারপর অক্ষর 0 এবং অঙ্কটি দিয়ে 0 সংখ্যার সমস্ত উপস্থিতি প্রতিস্থাপন করে I.
অক্ষর সহ 1এই ধরনের উপস্থাপনা বৈধ যদি এবং শুধুমাত্র যদি এটি সেটে {"A", "B", "C", "D", "E", "F", "I", "O) অক্ষরগুলি নিয়ে থাকে "}।
সুতরাং আমাদের একটি স্ট্রিং সংখ্যা আছে যা একটি দশমিক পূর্ণসংখ্যা N প্রতিনিধিত্ব করে, আমাদেরকে N এর হেক্সস্পিক উপস্থাপনা খুঁজে বের করতে হবে যদি এটি সঠিক হয়, অন্যথায় "ERROR" প্রদান করুন। তাই যদি num =“257” হয়, তাহলে আউটপুট হবে “IOI” কারণ 257 হেক্সাডেসিমেলে 101।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- x :=অঙ্কের হেক্স বিন্যাস
- উত্তর :=একটি খালি স্ট্রিং
- একটি অভিধান তৈরি করুন এবং সংখ্যাগুলি রাখুন (10 :'A', 11 :'B', 12 :'C', 13 :'D', 14 :'E', 15 :'F', 1 :'I', 0 :'O')
- প্রতিটি অক্ষরের জন্য i x −
- যদি i d হয়, তাহলে ans :=ans + d[i], অন্যথায় "ERROR" দিন
- উত্তর ফেরত দিন
উদাহরণ
আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −
class Solution(object): def convertToHex(self, n): res = [] while n > 0: res.append(n % 16) n //= 16 return res[::-1] def toHexspeak(self, num): x = self.convertToHex(int(num)) ans = "" d = {10:"A", 11:"B", 12:"C", 13:"D", 14:"E", 15:"F",0:"O",1:"I"} for i in x: if i in d: ans += d[i] else: return "ERROR" return ans ob1 = Solution() print(ob1.toHexspeak("659724"))
ইনপুট
"659724"
আউটপুট
"AIIOC"