Class Solution
- java.lang.Object
-
- g0701_0800.s0753_cracking_the_safe.Solution
-
public class Solution extends Object
753 - Cracking the Safe.Hard
There is a safe protected by a password. The password is a sequence of
ndigits where each digit can be in the range[0, k - 1].The safe has a peculiar way of checking the password. When you enter in a sequence, it checks the most recent
ndigits that were entered each time you type a digit.- For example, the correct password is
"345"and you enter in"012345":- After typing
0, the most recent3digits is"0", which is incorrect. - After typing
1, the most recent3digits is"01", which is incorrect. - After typing
2, the most recent3digits is"012", which is incorrect. - After typing
3, the most recent3digits is"123", which is incorrect. - After typing
4, the most recent3digits is"234", which is incorrect. - After typing
5, the most recent3digits is"345", which is correct and the safe unlocks.
- After typing
Return any string of minimum length that will unlock the safe at some point of entering it.
Example 1:
Input: n = 1, k = 2
Output: “10”
Explanation: The password is a single digit, so enter each digit. “01” would also unlock the safe.
Example 2:
Input: n = 2, k = 2
Output: “01100”
Explanation: For each possible password:
- “00” is typed in starting from the 4th digit.
- “01” is typed in starting from the 1st digit.
- “10” is typed in starting from the 3rd digit.
- “11” is typed in starting from the 2nd digit.
Thus “01100” will unlock the safe. “01100”, “10011”, and “11001” would also unlock the safe.
Constraints:
1 <= n <= 41 <= k <= 101 <= kn <= 4096
- For example, the correct password is
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
-
-
Method Detail
-
crackSafe
public String crackSafe(int n, int k)
-
-