Problem Statement
In each move the current player selects a cell containing a checker and performs one of the following two types of moves:
- A step, in which the checker is moved one cell to the right. The step can only be made if the target cell is empty.
- A jump, in which the checker jumps three cells to the right. The jump can only be made if the target cell is empty and the cells it jumped over contain two other checkers.
The initial layout of the board will be given as a
Definition
- Class:
- EllysCheckers
- Method:
- getWinner
- Parameters:
- String
- Returns:
- String
- Method signature:
- String getWinner(String board)
- (be sure your method is public)
Notes
- If there is a checker on the rightmost cell in the beginning of the game, it disappears instantly (before the first move is made), as if it were never there.
- The rules of the game ensure that each cell contains at most one checker at any time, and that no checker can jump beyond the last cell.
Constraints
- board will contain between 1 and 20 characters, inclusive.
- Each character of board will be either '.' or 'o'.
Examples
".o..."
Returns: "YES"
With only one checker it is pretty obvious who will win.
"..o..o"
Returns: "YES"
Don't forget to ignore checkers on the rightmost cell.
".o...ooo..oo.."
Returns: "NO"
Here one can jump the checker from cell 5 to cell 8.
"......o.ooo.o......"
Returns: "YES"
".o..o...o....o.....o"
Returns: "NO"
"......."
Returns: "NO"
"."
Returns: "NO"
"o"
Returns: "NO"
"oooooooooooooooooooo"
Returns: "NO"
"ooo.ooo.ooo.ooo.ooo."
Returns: "NO"
"o..ooo"
Returns: "NO"
"oooo...oo"
Returns: "YES"
"oo.o......."
Returns: "NO"
".ooooo"
Returns: "NO"
"oooooo..oo.oo..ooooo"
Returns: "YES"
".o.o...oooooo..."
Returns: "YES"
".o..o....."
Returns: "YES"
"ooooo"
Returns: "NO"
".o."
Returns: "YES"
"..o.........."
Returns: "NO"
"o.o.o.oooo."
Returns: "NO"
"oo....o.....ooo"
Returns: "NO"
"...oo..oooo.oooo..o"
Returns: "YES"
"ooooooooooo.oo.o"
Returns: "YES"
"....o.........."
Returns: "NO"
"o......."
Returns: "YES"
"o.o"
Returns: "NO"
"oo"
Returns: "YES"
"..o...oo.o"
Returns: "NO"
"...oo.."
Returns: "YES"
"o."
Returns: "YES"
"....o."
Returns: "YES"
"...ooo.o"
Returns: "YES"
"oooooo.oo.o"
Returns: "NO"
"oooooooooooooooo"
Returns: "NO"
".o..oo.o"
Returns: "YES"
"ooo.oo.o"
Returns: "YES"
"..oooo...o.ooo"
Returns: "YES"
"........oo..o......"
Returns: "YES"
"o......o.."
Returns: "YES"
"..oooo.o...oo.o..o"
Returns: "NO"
"oo.o.o.ooo..o.o.o"
Returns: "YES"
".......o........o.."
Returns: "YES"
"o...."
Returns: "NO"
"oooooooooooo"
Returns: "NO"
"o.oooooooooooooooooo"
Returns: "NO"
"......o.."
Returns: "NO"
"oooooooooo.oooo.oo"
Returns: "NO"
"oo..ooo.o...oooo.."
Returns: "NO"
"ooooooooo"
Returns: "NO"
"oo.ooo"
Returns: "NO"
".o.oo.oooooo.o.."
Returns: "NO"
".o..o...o...o."
Returns: "YES"
".o"
Returns: "NO"
".o..ooo.o"
Returns: "NO"
".......o...oo..."
Returns: "YES"
".o.o"
Returns: "NO"
"o.oo..ooo..o...o"
Returns: "NO"
"ooooooo"
Returns: "YES"
"...........o.o.."
Returns: "NO"
".o.o..oo"
Returns: "YES"
"oooooooo"
Returns: "NO"
".o.oo.oooooo"
Returns: "NO"
"......oo.o......."
Returns: "NO"
"oooo.ooooo.o"
Returns: "NO"
"o....o.......o.oo"
Returns: "YES"
".......oo."
Returns: "YES"
"o...oo.oo"
Returns: "NO"
"ooooooooooo"
Returns: "YES"
"oooooo"
Returns: "YES"
"........o..."
Returns: "YES"
"..o"
Returns: "NO"
"o.oo....o.o"
Returns: "YES"
".o................."
Returns: "YES"
"ooo"
Returns: "YES"
".o.oo.ooo.o."
Returns: "NO"
".......o."
Returns: "YES"
"...o...ooo..o.."
Returns: "YES"
".....o......"
Returns: "NO"
"oooooooooo"
Returns: "YES"
".oo"
Returns: "YES"
".oo.oo.oooo..o.o.."
Returns: "NO"
".oooooooooo.ooo.oo.o"
Returns: "NO"
"..ooooo"
Returns: "NO"
"oooooooooooo...oo.oo"
Returns: "NO"
"o.ooooooo.ooooooo"
Returns: "NO"
"....o...o.."
Returns: "NO"
"oo."
Returns: "YES"
"..o.o......."
Returns: "NO"
"o.oo....o..o.o...o.."
Returns: "YES"
"....oo.oo.....o"
Returns: "NO"
"..oo.o"
Returns: "YES"
".o..o...o....oo....o"
Returns: "YES"
"oooo..ooo..oo..oo..o"
Returns: "NO"
"ooooooooooooooooooo."
Returns: "NO"
".o...oooo..oo.."
Returns: "NO"
"oooooooooooooooooo"
Returns: "YES"
".o.."
Returns: "NO"
"ooooooooooooooooooo"
Returns: "YES"
"o.o....ooo.o.o..o."
Returns: "NO"
"o.."
Returns: "NO"
"o.oo.o.o..o..o..o..."
Returns: "NO"
"o.oo..o.o..o.o..o.o."
Returns: "NO"
"oooo.oooo.oooo.oooo."
Returns: "NO"
"ooooo.."
Returns: "NO"
".."
Returns: "NO"
"ooooooo.oooooooooooo"
Returns: "NO"
".o.o...ooo..oo.."
Returns: "NO"
"oooooo.ooooooooooooo"
Returns: "YES"
"ooo."
Returns: "NO"
"o.o."
Returns: "NO"
"oooo."
Returns: "NO"
"oo..o...ooo."
Returns: "NO"
"oooooo............"
Returns: "YES"
"o.o.o."
Returns: "YES"
"oo..o.o.ooo.o..o"
Returns: "NO"
"o..."
Returns: "YES"
"..o.."
Returns: "NO"