Confusing Number II

Asked atMedia.net
1Give yourself 5 minutes
2Answer out loud, not in your head
3Then compare with the answer below

The problem

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, and 9 are rotated 180 degrees, they become 0, 1, 9, 8, and 6 respectively.

  • When 2, 3, 4, 5, and 7 are rotated 180 degrees, they become invalid. Note that after rotating a number, we can ignore leading zeros.

  • For example, after rotating 8000, we have 0008 which is considered as just 8. Given an integer n, return the number of confusing numbers in the inclusive range [1, n].

Input: n = 20 Output: 6 Explanation: The confusing numbers are [6,9,10,16,18,19]. 6 converts to 9. 9 converts to 6. 10 converts to 01 which is just 1. 16 converts to 91. 18 converts to 81. 19 converts to 61.

Input: n = 100 Output: 19 Explanation: The confusing numbers are [6,9,10,16,18,19,60,61,66,68,80,81,86,89,90,91,98,99,100]

Input: n = 150

  • 1 <= n <= 109

cpp

class Solution {
public:
    int confusingNumberII(int n) {
        // User code goes here
       
    }
};

java

class Solution {
    public int confusingNumberII(int n) {
        // User code goes here
     
    }
}

python

class Solution:
    def confusingNumberII(self, n: int) -> int:
        # User code goes here

javascript

class Solution {
    confusingNumberII(n) {
        // User code goes here
     
    }
}

csharp

public class Solution
{
    public int ConfusingNumberII(int n)
    {
        // User code goes here
     
    }
}

go

func confusingNumberII(n int) int {

}
Stuck? Show a way to structure it+
  1. 01Generate numbers using only rotatable digits.
  2. 02Avoid leading zeroes and stop beyond n.
  3. 03Rotate generated digits in reverse order using the mapping.
  4. 04Count values whose rotation differs from the original.

Reference answer

Then expect these follow-ups

  • How would you count strobogrammatic rather than confusing numbers?

    Tests: definition contrast

  • How can digit DP handle much larger n?

    Tests: digit DP

Free to read · better with Enzo

Practice this out loud with Enzo

Enzo runs it as a mock interview, pushes back with follow-ups, and grades you on the rubric.

Next question