কম্পিউটার

পাইথনে হেক্সস্পিক


ধরুন একটি দশমিক সংখ্যাটিকে প্রথমে একটি বড় হাতের হেক্সাডেসিমেল স্ট্রিং-এ রূপান্তর করে তার হেক্সস্পিক উপস্থাপনায় রূপান্তরিত করা যেতে পারে, তারপর অক্ষর 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"

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

  2. পাইথনে 3 যোগফল

  3. পাইথনে অক্ষর পুনরাবৃত্তি ছাড়াই দীর্ঘতম সাবস্ট্রিং

  4. পাইথনে Sqrt(x)