Python 中的六进制表示


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

这种表示仅在它仅包含以下集合中的字母时才有效:{"A", "B", "C", "D", "E", "F", "I", "O"}。

因此我们有一个字符串 num 表示十进制整数 N,我们必须找到 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"

更新于:2020-04-28

827 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.