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