LC: 1056. Confusing Number
1056. Confusing Number
A confusing number is a number that when rotated 180 degrees becomes a different number with each digit valid.
We can rotate digits of a number by 180 degrees to form new digits.
When
0,1,6,8, and9are rotated180degrees, they become0,1,9,8, and6respectively.When
2,3,4,5, and7are rotated180degrees, they become invalid.
Note that after rotating a number, we can ignore leading zeros.
For example, after rotating
8000, we have0008which is considered as just8.
Given an integer n, return true if it is a confusing number, or false otherwise.
Example 1:
Input: n = 6
Output: true
Explanation: We get 9 after rotating 6, 9 is a valid number, and 9 != 6.Example 2:
Input: n = 89
Output: true
Explanation: We get 68 after rotating 89, 86 is a valid number and 86 != 89.Example 3:
Input: n = 11
Output: false
Explanation: We get 11 after rotating 11, 11 is a valid number but the value remains the same, thus 11 is not a confusing numberExample 4:
Constraints:
0 <= n <= 109
The Essence:
Wenn eine Zahl nur aus den Ziffern 0, 1, 6, 8, 9 besteht und nach einer Drehung um 180 Grad nicht gleich bleibt, dann ist es eine confusing Zahl.
Details:
Zuerst kann man die Rotationspaare wie (6,9) in eine Tabelle einfügen. Man kann die Umdrehung dadurch simulieren, indem man die Zahl in ihre Ziffern aufteilt und durch Rotation dieser Ziffern in entgegengesetzten Indizes rekonstruiert.
Solution(s):
Default Code:
Last updated