用Python讲十六进制

假设可以先将十进制数字转换为十六进制字符串,然后再将其转换为十六进制字符串,然后将所有出现的数字0替换为字母O,将数字1替换为字母I。

当且仅当它仅由集合{“ A”,“ B”,“ C”,“ D”,“ E”,“ F”,“ I”,“ O”中的字母组成时,这种表示形式才有效“}。

因此,我们有一个代表小数整数N的字符串num,如果正确,我们必须找到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')

  • 对于x中的每个字符i-

    • 如果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"