Problem Statement
There are some tiles in a row. Each of the tiles is colored white or black. You are given a
Cat and Rabbit take alternating turns. Cat plays first. In each turn, the following actions must be performed:
- First, the player must select a black tile and step on it.
- Then, the player must make some steps (as many as they want, but at least one). In each step, the player must select an adjacent white tile, move to that tile, and change its color to black.
Definition
- Class:
- CatAndRabbit
- Method:
- getWinner
- Parameters:
- String
- Returns:
- String
- Method signature:
- String getWinner(String tiles)
- (be sure your method is public)
Constraints
- tiles will contain between 1 and 50 characters, inclusive.
- Each character in tiles will be '.' or '#'.
Examples
"#.."
Returns: "Cat"
In the first turn, Cat will select the leftmost tile and can move to the right twice. Then Rabbit has no legal move and loses.
".#."
Returns: "Rabbit"
In the first turn, Cat must select the middle tile. Then, Cat can decide whether to step to the left or to the right. In the second turn, Rabbit will select the middle tile and then step in the opposite direction.
"###"
Returns: "Rabbit"
Cat has no legal move at the beginning of the game.
"#..##.#"
Returns: "Cat"
"..."
Returns: "Rabbit"
"###...####....###...####...."
Returns: "Rabbit"
"#"
Returns: "Rabbit"
".................................................."
Returns: "Rabbit"
"##################################################"
Returns: "Rabbit"
".................................................#"
Returns: "Cat"
"#................................................."
Returns: "Cat"
"#................................................#"
Returns: "Cat"
".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."
Returns: "Cat"
".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."
Returns: "Rabbit"
"..#..#..#..#..#..#..#..#..#..#..#..#..#..#..#..#.."
Returns: "Cat"
"..#..#..#..#..#..#..#..#..#..#..#..#..#..#..#.."
Returns: "Rabbit"
"...#...#...#...#...#...#...#...#...#...#...#..."
Returns: "Rabbit"
"...#...#...#...#...#...#...#...#...#...#..."
Returns: "Cat"
"#...#.##.##.#...##...#..#..#..##...#..##...#..#.#."
Returns: "Rabbit"
"...##...#..##.###.#..##...#.#...#..#..#.#..#...##"
Returns: "Cat"
"#..#.##...#.#...##...#.#..#..#.###...##.###..#...#"
Returns: "Cat"
"####...#..#.####.#..#...#..###..#.#...#.#.#..#..."
Returns: "Cat"
"#................##.##########.................##"
Returns: "Rabbit"
".....................###....................###.#"
Returns: "Rabbit"
".........###..#####........................#######"
Returns: "Cat"
"######..###...............##.............##"
Returns: "Rabbit"
"###.................##..####...................##"
Returns: "Rabbit"
"########..........#...######.........############"
Returns: "Rabbit"
"...#.............................#...........#"
Returns: "Cat"
"#................####.....###...................#"
Returns: "Cat"
"##.......#..................#....................."
Returns: "Rabbit"
"#................#..........####.............####"
Returns: "Cat"
"######################..#.......###....#.######"
Returns: "Rabbit"
"######.##....###.........#.....................##"
Returns: "Cat"
"##...................##.............##.###.....###"
Returns: "Cat"
".....#.................###.....................#."
Returns: "Rabbit"
"..................#.#......#.....................#"
Returns: "Rabbit"
"...#..#########....###..........................##"
Returns: "Cat"
"###..............###.................##..###...#"
Returns: "Cat"
".....##.............######..........#######..##"
Returns: "Rabbit"
".....#................#..##......................."
Returns: "Rabbit"
"##..#............#........########......########"
Returns: "Rabbit"
".....................##..#......#................."
Returns: "Rabbit"
"#..........#####.......###..####................#"
Returns: "Cat"
".....................#..#...........#.........."
Returns: "Cat"
"#..#..........#...............#..................."
Returns: "Cat"
"############...........##............#....###..."
Returns: "Rabbit"
"#...............######...#...........####.......#"
Returns: "Rabbit"
"#................#......#....#..................#"
Returns: "Rabbit"
"####.......#.............#....####.............."
Returns: "Rabbit"
"...................#................##.......#...."
Returns: "Rabbit"
"....##..........#...................#.........##"
Returns: "Cat"
"#############.........##......##..........###....."
Returns: "Rabbit"
"#.............#......#..............#....."
Returns: "Rabbit"
"#...................#................#.....#......"
Returns: "Rabbit"
".##.########..###########.########...#########"
Returns: "Rabbit"
"#######.###....#####.......###..##"
Returns: "Rabbit"
"##.#####................................######"
Returns: "Cat"
"##.#..#.......##..........................###..#.#"
Returns: "Cat"
"########################..####................"
Returns: "Cat"
"#########"
Returns: "Rabbit"
"#############.....#.................#..........#"
Returns: "Cat"
"##.######.##########......................###"
Returns: "Cat"
"................#######.###.....#######"
Returns: "Cat"
".#..........########.############..........####"
Returns: "Rabbit"
"###########.###.###########................##....#"
Returns: "Cat"
"#############..####.######..#######...#####"
Returns: "Cat"
"#..###........##...#..............##.....##..####"
Returns: "Rabbit"
"#########.####################.##########"
Returns: "Rabbit"
"###########........##.................############"
Returns: "Cat"
"##.########.##################..#########.#...###"
Returns: "Rabbit"
"##....############################....#####"
Returns: "Rabbit"
"##...#...........................#.....#.........#"
Returns: "Cat"
".########..............##########.#.#...###......"
Returns: "Cat"
"#...#########...........................######."
Returns: "Cat"
"#.########...############.....#..........#"
Returns: "Cat"
"#############..##.......####################.....#"
Returns: "Rabbit"
"..#................#.....#.....................#.."
Returns: "Rabbit"
"....................#.######..#....######....##"
Returns: "Cat"
".............####.....######.#.####.##.......##"
Returns: "Cat"
"##..##############..#"
Returns: "Rabbit"
"##....####......########.............##########"
Returns: "Cat"
"#####..########.........#################"
Returns: "Cat"
"###...................##.......###.########"
Returns: "Cat"
"####...###################....###"
Returns: "Cat"
"."
Returns: "Rabbit"
".........................#........................"
Returns: "Cat"
"###...#.##.....#..."
Returns: "Cat"
"#....#.."
Returns: "Cat"
".#..."
Returns: "Cat"
"..#..."
Returns: "Cat"
"..#..#..#.."
Returns: "Rabbit"
"####...............##############"
Returns: "Cat"
"#.#..#....#"
Returns: "Cat"
"#.#..#...#"
Returns: "Rabbit"
"#..."
Returns: "Cat"
"###...####....###......."
Returns: "Rabbit"
"#."
Returns: "Cat"
"#...#.#"
Returns: "Cat"
"...#."
Returns: "Cat"
"..#...."
Returns: "Cat"
".#.#."
Returns: "Cat"
"..#...#..#.."
Returns: "Cat"