Leetcode: Letter case permutation
The task is to print all case permutations of letters from strings that can include digits and letters. For example, a1b
becomes a1b, a1B, A1b, A1B
.
The trick here is to realize that there are 2^n
possible permutations where n
is the number of characters, excluding digits.
One possible solution is shown below. The main idea is to generate binary numbers and then use the 1
and 0
in their places to either make the character uppercase or keep it lowercase. For example a decimal number 2
is represented by b10
in binary notation. The number 3
is represented by b11
, and so on. When left padding - meaning to write a prefix of 0
, all possible combinations are found.
Runtime: 106 ms, faster than 33.96% of Python3 online submissions for Letter Case Permutation.
Memory Usage: 14.6 MB, less than 81.20% of Python3 online submissions for Letter Case Permutation.