[
string
hash table
math
]
Leetcode 1056 Confusing Number
Problem statement
https://leetcode.com/problems/confusing-number/
Solution
Create hash table of connections and then check definition: apply d
for every digit and reverse it. Also deal with case when we have #
symbol.
Complexity
Time and space complexity is O(m)
, where m
is nubmer of digits in n
.
Code
class Solution:
def confusingNumber(self, n):
s = str(n)
d = {"0" : "0", "1" : "1", "6" : "9", "8" : "8", "9" : "6"}
s1 = "".join(d.get(c,"#") for c in s[::-1])
return s1 != s and "#" not in s1