Statistics

Problem Statement for "CatAndRabbit"

Problem Statement

Cat and Rabbit are going to play the following game.

There are some tiles in a row. Each of the tiles is colored white or black. You are given a String tiles, describing the initial arrangement of tiles. The characters '.' and '#' represent a white tile and a black tile, respectively.

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.
The animal who is unable to take a valid turn loses the game. Return the String "Cat" if Cat will win, "Rabbit" if Rabbit will win, assuming both animals play optimally.

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

  1. "#.."

    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.

  2. ".#."

    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.

  3. "###"

    Returns: "Rabbit"

    Cat has no legal move at the beginning of the game.

  4. "#..##.#"

    Returns: "Cat"

  5. "..."

    Returns: "Rabbit"

  6. "###...####....###...####...."

    Returns: "Rabbit"

  7. "#"

    Returns: "Rabbit"

  8. ".................................................."

    Returns: "Rabbit"

  9. "##################################################"

    Returns: "Rabbit"

  10. ".................................................#"

    Returns: "Cat"

  11. "#................................................."

    Returns: "Cat"

  12. "#................................................#"

    Returns: "Cat"

  13. ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."

    Returns: "Cat"

  14. ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."

    Returns: "Rabbit"

  15. "..#..#..#..#..#..#..#..#..#..#..#..#..#..#..#..#.."

    Returns: "Cat"

  16. "..#..#..#..#..#..#..#..#..#..#..#..#..#..#..#.."

    Returns: "Rabbit"

  17. "...#...#...#...#...#...#...#...#...#...#...#..."

    Returns: "Rabbit"

  18. "...#...#...#...#...#...#...#...#...#...#..."

    Returns: "Cat"

  19. "#...#.##.##.#...##...#..#..#..##...#..##...#..#.#."

    Returns: "Rabbit"

  20. "...##...#..##.###.#..##...#.#...#..#..#.#..#...##"

    Returns: "Cat"

  21. "#..#.##...#.#...##...#.#..#..#.###...##.###..#...#"

    Returns: "Cat"

  22. "####...#..#.####.#..#...#..###..#.#...#.#.#..#..."

    Returns: "Cat"

  23. "#................##.##########.................##"

    Returns: "Rabbit"

  24. ".....................###....................###.#"

    Returns: "Rabbit"

  25. ".........###..#####........................#######"

    Returns: "Cat"

  26. "######..###...............##.............##"

    Returns: "Rabbit"

  27. "###.................##..####...................##"

    Returns: "Rabbit"

  28. "########..........#...######.........############"

    Returns: "Rabbit"

  29. "...#.............................#...........#"

    Returns: "Cat"

  30. "#................####.....###...................#"

    Returns: "Cat"

  31. "##.......#..................#....................."

    Returns: "Rabbit"

  32. "#................#..........####.............####"

    Returns: "Cat"

  33. "######################..#.......###....#.######"

    Returns: "Rabbit"

  34. "######.##....###.........#.....................##"

    Returns: "Cat"

  35. "##...................##.............##.###.....###"

    Returns: "Cat"

  36. ".....#.................###.....................#."

    Returns: "Rabbit"

  37. "..................#.#......#.....................#"

    Returns: "Rabbit"

  38. "...#..#########....###..........................##"

    Returns: "Cat"

  39. "###..............###.................##..###...#"

    Returns: "Cat"

  40. ".....##.............######..........#######..##"

    Returns: "Rabbit"

  41. ".....#................#..##......................."

    Returns: "Rabbit"

  42. "##..#............#........########......########"

    Returns: "Rabbit"

  43. ".....................##..#......#................."

    Returns: "Rabbit"

  44. "#..........#####.......###..####................#"

    Returns: "Cat"

  45. ".....................#..#...........#.........."

    Returns: "Cat"

  46. "#..#..........#...............#..................."

    Returns: "Cat"

  47. "############...........##............#....###..."

    Returns: "Rabbit"

  48. "#...............######...#...........####.......#"

    Returns: "Rabbit"

  49. "#................#......#....#..................#"

    Returns: "Rabbit"

  50. "####.......#.............#....####.............."

    Returns: "Rabbit"

  51. "...................#................##.......#...."

    Returns: "Rabbit"

  52. "....##..........#...................#.........##"

    Returns: "Cat"

  53. "#############.........##......##..........###....."

    Returns: "Rabbit"

  54. "#.............#......#..............#....."

    Returns: "Rabbit"

  55. "#...................#................#.....#......"

    Returns: "Rabbit"

  56. ".##.########..###########.########...#########"

    Returns: "Rabbit"

  57. "#######.###....#####.......###..##"

    Returns: "Rabbit"

  58. "##.#####................................######"

    Returns: "Cat"

  59. "##.#..#.......##..........................###..#.#"

    Returns: "Cat"

  60. "########################..####................"

    Returns: "Cat"

  61. "#########"

    Returns: "Rabbit"

  62. "#############.....#.................#..........#"

    Returns: "Cat"

  63. "##.######.##########......................###"

    Returns: "Cat"

  64. "................#######.###.....#######"

    Returns: "Cat"

  65. ".#..........########.############..........####"

    Returns: "Rabbit"

  66. "###########.###.###########................##....#"

    Returns: "Cat"

  67. "#############..####.######..#######...#####"

    Returns: "Cat"

  68. "#..###........##...#..............##.....##..####"

    Returns: "Rabbit"

  69. "#########.####################.##########"

    Returns: "Rabbit"

  70. "###########........##.................############"

    Returns: "Cat"

  71. "##.########.##################..#########.#...###"

    Returns: "Rabbit"

  72. "##....############################....#####"

    Returns: "Rabbit"

  73. "##...#...........................#.....#.........#"

    Returns: "Cat"

  74. ".########..............##########.#.#...###......"

    Returns: "Cat"

  75. "#...#########...........................######."

    Returns: "Cat"

  76. "#.########...############.....#..........#"

    Returns: "Cat"

  77. "#############..##.......####################.....#"

    Returns: "Rabbit"

  78. "..#................#.....#.....................#.."

    Returns: "Rabbit"

  79. "....................#.######..#....######....##"

    Returns: "Cat"

  80. ".............####.....######.#.####.##.......##"

    Returns: "Cat"

  81. "##..##############..#"

    Returns: "Rabbit"

  82. "##....####......########.............##########"

    Returns: "Cat"

  83. "#####..########.........#################"

    Returns: "Cat"

  84. "###...................##.......###.########"

    Returns: "Cat"

  85. "####...###################....###"

    Returns: "Cat"

  86. "."

    Returns: "Rabbit"

  87. ".........................#........................"

    Returns: "Cat"

  88. "###...#.##.....#..."

    Returns: "Cat"

  89. "#....#.."

    Returns: "Cat"

  90. ".#..."

    Returns: "Cat"

  91. "..#..."

    Returns: "Cat"

  92. "..#..#..#.."

    Returns: "Rabbit"

  93. "####...............##############"

    Returns: "Cat"

  94. "#.#..#....#"

    Returns: "Cat"

  95. "#.#..#...#"

    Returns: "Rabbit"

  96. "#..."

    Returns: "Cat"

  97. "###...####....###......."

    Returns: "Rabbit"

  98. "#."

    Returns: "Cat"

  99. "#...#.#"

    Returns: "Cat"

  100. "...#."

    Returns: "Cat"

  101. "..#...."

    Returns: "Cat"

  102. ".#.#."

    Returns: "Cat"

  103. "..#...#..#.."

    Returns: "Cat"


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: