मान लीजिए एक दशमलव संख्या को उसके हेक्सस्पीक प्रतिनिधित्व में बदला जा सकता है पहले इसे एक अपरकेस हेक्साडेसिमल स्ट्रिंग में बदलकर, उसके बाद अंक 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"