কম্পিউটার টিউটোরিয়াল

পাইথনে Hexspeak রূপান্তর

এক দশমিক সংখ্যাকে এর 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"

  1. পাইথনে Pow(x, n)

  2. পাইথনে 3Sum

  3. পাইথনে লองেস্ট সাবস্ট্রিং উইথআউট রিপিটিং ক্যারেক্টারস

  4. পাইথনে Sqrt(x) ইমপ্লিমেন্টেশন