Problem Statement |
| Little Romeo likes cosmic amoebas a lot. Recently he found an ancient box, and he believes that there is an amoeba inside it. Unfortunately, the box is protected by a combination lock which contains a row of digits, each between 0 and K, inclusive. The initial combination, from left to right, is given in the String code. Romeo thinks that the lock will open if he replaces each 0 digit with some digit between 1 and K, inclusive, such that the minimal distance between any pair of equal digits is as big as possible. The distance between two numbers in positions A and B, respectively, is |A-B|. Return the maximal possible minimal distance that can be achieved. |
|
Definition |
| Class: | AmoebaCode | Method: | find | Parameters: | String, int | Returns: | int | Method signature: | int find(String code, int K) | (be sure your method is public) |
|
|
|
|
Constraints |
- | K will be between 1 and 7, inclusive. |
- | code will contain between K+1 and 50 characters, inclusive. |
- | Each character of code will be a digit between 0 and K, inclusive. |
|
Examples |
0) | |
| |
1) | |
| | Returns: 1 | There are only four possible ways to replace the '0's here:
1121
1211
1111
1221
In each of these combinations, the shortest distance between two equal digits is between consecutive equal digits (a distance of 1). |
|
|
2) | |
| |
3) | |
| | Returns: 3 | One possible combination is "31231". There are two pairs of equal digits here. The distance between the two '3's is 3, and the distance between the two '1's is 3. |
|
|
4) | |
| |