Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 헥스스피크


10진수를 처음에는 대문자 16진수 문자열로 변환하고 그 후에 숫자 0의 모든 항목을 문자 O로 바꾸고 숫자를 Hexspeak 표현으로 변환할 수 있다고 가정합니다. 1과 I.

이러한 종류의 표현은 집합 {"A", "B", "C", "D", "E", "F", "I", "O"의 문자로만 구성된 경우에만 유효합니다. "}.

그래서 우리는 10진 정수 N을 나타내는 문자열 num을 가지고 있습니다. 우리는 N의 Hexpeak 표현이 맞으면 찾아야 하고, 그렇지 않으면 "ERROR"를 반환해야 합니다. 따라서 num ="257"이면 257은 16진수로 101이므로 출력은 "IOI"가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • x :=숫자의 16진 형식
  • ans :=빈 문자열
  • 사전을 하나 만들고 숫자(10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F', 1:'나', 0 :'오')
  • x의 각 문자 i에 대해 −
    • i가 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"