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"