এক দশমিক সংখ্যাকে এর Hexspeak রিপ্রেজেন্টেশনে রূপান্তর করতে হলে প্রথমে এটি বড় হেক্সাডেসিমাল স্ট্রিং-এ রূপান্তর করতে হয়, তারপর ০ ডিজিটকে O অক্ষরে এবং ১ ডিজিটকে I অক্ষরে রিপ্লেস করতে হয়। এই রিপ্রেজেন্টেশনটি তখনই বৈধ হবে যখন এতে শুধু {A, B, C, D, E, F, I, O} সেটের অক্ষরগুলো থাকে। আমাদের একটি স্ট্রিং num দেওয়া আছে যা একটি দশমিক পূর্ণসংখ্যা Nকে নির্দেশ করে, আমাদের N-এর Hexspeak রিপ্রেজেন্টেশন বের করতে হবে যদি এটি সঠিক হয়, অন্যথায় "ERROR" রিটার্ন করতে হবে। যেমন num = "257" হলে আউটপুট হবে "IOI" কারণ 257 হেক্সে 101।
এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:
- x := অঙ্কটির হেক্স ফরম্যাট
- ans := একটি খালি স্ট্রিং
- একটি ডিকশনারি তৈরি করুন এবং নম্বরগুলো রাখুন (10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F', 1:'I', 0:'O')
- x-র প্রতিটি ক্যারেক্টার i জন্য
- যদি i d-তে থাকে, তবে ans := ans + d[i], অন্যথায় "ERROR" রিটার্ন করুন
- ans রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:
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"