สมมติว่าสามารถแปลงตัวเลขทศนิยมเป็นรูปแบบ 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"