|
1 | 1 | packagecom.fishercoder.solutions;
|
2 | 2 |
|
3 |
| -/** |
4 |
| - * 488. Zuma Game |
5 |
| - * |
6 |
| - * Think about Zuma Game. You have a row of balls on the table, colored red(R), yellow(Y), blue(B), green(G), and white(W). |
7 |
| - * You also have several balls in your hand. |
8 |
| -
|
9 |
| - Each time, you may choose a ball in your hand, and insert it into the row (including the leftmost place and rightmost place). |
10 |
| - Then, if there is a group of 3 or more balls in the same color touching, remove these balls. Keep doing this until no more balls can be removed. |
11 |
| -
|
12 |
| - Find the minimal balls you have to insert to remove all the balls on the table. If you cannot remove all the balls, output -1. |
13 |
| -
|
14 |
| - Examples: |
15 |
| -
|
16 |
| - Input: "WRRBBW", "RB" |
17 |
| - Output: -1 |
18 |
| - Explanation: WRRBBW -> WRR[R]BBW -> WBBW -> WBB[B]W -> WW |
19 |
| -
|
20 |
| - Input: "WWRRBBWW", "WRBRW" |
21 |
| - Output: 2 |
22 |
| - Explanation: WWRRBBWW -> WWRR[R]BBWW -> WWBBWW -> WWBB[B]WW -> WWWW -> empty |
23 |
| -
|
24 |
| - Input:"G", "GGGGG" |
25 |
| - Output: 2 |
26 |
| - Explanation: G -> G[G] -> GG[G] -> empty |
27 |
| -
|
28 |
| - Input: "RBYYBBRRB", "YRBGB" |
29 |
| - Output: 3 |
30 |
| - Explanation: RBYYBBRRB -> RBYY[Y]BBRRB -> RBBBRRB -> RRRB -> B -> B[B] -> BB[B] -> empty |
31 |
| -
|
32 |
| - Note: |
33 |
| -
|
34 |
| - You may assume that the initial row of balls on the table won’t have any 3 or more consecutive balls with the same color. |
35 |
| - The number of balls on the table won't exceed 20, and the string represents these balls is called "board" in the input. |
36 |
| - The number of balls in your hand won't exceed 5, and the string represents these balls is called "hand" in the input. |
37 |
| - Both input strings will be non-empty and only contain characters 'R','Y','B','G','W'. |
38 |
| - */ |
39 | 3 | publicclass_488 {
|
40 | 4 |
|
41 | 5 | publicstaticclassSolution1 {
|
|