Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Hexspeak trong Python

Một số thập phân có thể chuyển đổi thành dạng Hexspeak bằng cách trước tiên chuyển thành chuỗi hexadecimal in hoa, sau đó thay thế tất cả chữ số 0 bằng chữ O, và chữ số 1 bằng chữ I. Dạng biểu diễn này hợp lệ nếu và chỉ nếu nó chỉ chứa các chữ cái trong tập {A, B, C, D, E, F, I, O}.

Cho chuỗi num đại diện cho số nguyên thập phân N, tìm biểu diễn Hexspeak của N nếu hợp lệ, ngược lại trả về "ERROR". Ví dụ, num = "257" cho kết quả "IOI" vì 257 trong hex là 101.

Để giải quyết, thực hiện các bước sau:

  • x := dạng hex của số
  • ans := chuỗi rỗng
  • Tạo một dictionary: {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F', 1: 'I', 0: 'O'}
  • Với mỗi ký tự i trong x:
    • Nếu i có trong dictionary, ans := ans + d[i], ngược lại trả về "ERROR"
  • Trả về ans

Ví dụ

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"))

Đầu vào

"659724"

Kết quả

"AIIOC"