Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Hexspeak ใน Python


สมมติว่าสามารถแปลงตัวเลขทศนิยมเป็นรูปแบบ Hexspeak ได้โดยแปลงเป็นสตริงฐานสิบหกตัวพิมพ์ใหญ่ในตอนแรก หลังจากนั้นจะแทนที่ตัวเลข 0 ที่เกิดขึ้นทั้งหมดด้วยตัวอักษร O และตัวเลข 1 ด้วยตัวอักษร I.

การแสดงแบบนี้ใช้ได้ก็ต่อเมื่อประกอบด้วยตัวอักษรในชุด {"A", "B", "C", "D", "E", "F", "I", "O" เท่านั้น "}.

ดังนั้นเราจึงมี num สตริงที่แสดงจำนวนเต็มทศนิยม N เราต้องหาการแทนค่า Hexspeak ของ N หากถูกต้อง ไม่เช่นนั้นให้คืนค่า "ERROR" ดังนั้นหาก num =“257” ผลลัพธ์จะเป็น “IOI” เนื่องจาก 257 คือ 101 ในเลขฐานสิบหก

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • x :=รูปแบบเลขฐานสิบหก
  • ans :=สตริงว่าง
  • ทำพจนานุกรมหนึ่งชุด แล้วใส่ตัวเลข (10 :'A', 11 :'B', 12 :'C', 13 :'D', 14 :'E', 15 :'F', 1 :'ฉัน', 0 :'O')
  • สำหรับแต่ละอักขระ i ใน x −
    • ถ้าฉันอยู่ใน 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"