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: 'I', 0: 'O')
  • สำหรับแต่ละตัวอักษร i ใน x −
    • ถ้า 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"