Statistics

Problem Statement for "FoxAndGomoku"

Problem Statement

Fox Ciel is going to play Gomoku with her friend Fox Jiro. Ciel plays better, so before they start she allowed Jiro to put some of his pieces on the board.


You are given a String[] board that represents a square board. The character board[i][j] represents the cell with coordinates (i,j). Each of those characters is either '.' (representing an empty cell) or 'o' (representing a cell with Jiro's piece).


Of course, Ciel does not want Jiro to win the game before she has a chance to play. Thus she now has to check the board and determine whether there are five consecutive tokens somewhere on the board.


Determine whether there are 5 consecutive cells (horizontally, vertically, or diagonally) that contain Jiro's tokens. Return "found" (quotes for clarity) if there are five such cells anywhere on the board. Otherwise, return "not found".

Definition

Class:
FoxAndGomoku
Method:
win
Parameters:
String[]
Returns:
String
Method signature:
String win(String[] board)
(be sure your method is public)

Constraints

  • n will be between 5 and 15, inclusive.
  • board will contain exactly n elements.
  • Each element in board will contain exactly n characters.
  • Each character in board will be 'o' or '.'.

Examples

  1. {"....o.", "...o..", "..o...", ".o....", "o.....", "......"}

    Returns: "found"

    There is five continue pieces diagonally.

  2. {"oooo.", ".oooo", "oooo.", ".oooo", "....."}

    Returns: "not found"

    There is no five-in-a-row on this board.

  3. {"oooo.", ".oooo", "oooo.", ".oooo", "....o"}

    Returns: "found"

    Five consecutive tokens can be found in the following cells: (0,0), (1,1), (2,2), (3,3), and (4,4).

  4. {"o.....", ".o....", "..o...", "...o..", "....o.", "......"}

    Returns: "found"

  5. {"o....", "o.o..", "o.o.o", "o.o..", "o...."}

    Returns: "found"

  6. {"..........", "..........", "..oooooo..", "..o.......", "..o.......", "..oooooo..", ".......o..", ".......o..", "..oooooo..", ".........."}

    Returns: "found"

  7. {"..........", "..........", "..oooo.o..", "..o.......", "..o.......", "..o.oooo..", ".......o..", ".......o..", "..oooo.o..", ".........."}

    Returns: "not found"

  8. {"ooooo", "ooooo", "ooooo", "ooooo", "ooooo"}

    Returns: "found"

  9. {".....", ".....", ".....", ".....", "....."}

    Returns: "not found"

  10. {"...o..oooo","....oo..oo","oo.o.o....","o......o..","....ooo..o",".ooo.oo...",".o.o...o..",".o...o.ooo",".o.oo...o.","o.......o."}

    Returns: "not found"

  11. {"ooo..oooo","o.ooo.ooo",".oo..oo.o",".oooooo.o","oooo.oooo","oo.o.oooo","o.o.oooo.",".oo.oo..o","oooooo.oo"}

    Returns: "found"

  12. {"...........","...........","......o..o.","..........o","o.o........","...........",".......o...","...........","...........","...........","..........."}

    Returns: "not found"

  13. {"oooo.oo","o.oo.o.","ooooo..","..ooooo",".ooo.oo","o..o.oo","oo.oooo"}

    Returns: "found"

  14. {".............","........o....","....oo..o.oo.","...o..o...o..","oo.....o.....",".....o.oo....","..o.o......o.","o............",".oo.oo.o....o","....o...oo...","o......o.....",".o.o.o.o.....","o...o.o......"}

    Returns: "not found"

  15. {"oooo..oooo","ooo..oo.oo","oo.ooooooo","o...o.oooo","o.oo.oo.oo","ooooooo.oo","oooo..o.oo","o.oo.ooooo","o..ooo.oo.","oooo.oooo."}

    Returns: "found"

  16. {"oo.oo","...o.","oo.o.",".o..o",".oo.o"}

    Returns: "not found"

  17. {"o.o...ooo.o..","o.ooo....o..o","oo...ooooo...","..oooo......o","o.o.oo.o...o.","..o..oo....oo","o.o..o..o.ooo","ooooo..o.o.o.","..o.o........","...o..o.o.o..",".....oo..o.o.",".oo.o.oo...oo",".o.o..o.oooo."}

    Returns: "found"

  18. {"oooooo..o.o","oo.oooo.oo.","o.o..o.o.oo","ooooooooo.o","ooooooooo.o","ooooooo.ooo","o.oo.oo.ooo","oo.ooo..ooo",".oo.oo.o.oo","o.o.o.oooo.","oooooo.oo.o"}

    Returns: "found"

  19. {".ooooooo..oo.","..o.oo.oo...o",".o.o..oo.o...","oo.ooooo..o.o","oo..o.ooo....",".oo.oooo.....",".o..oo.o...oo","o..o..o.o...o","o.o..o.ooo.o.","oo..o.o.o....","..oo.........","...oooo.o...o",".o..ooo.oo..o"}

    Returns: "found"

  20. {".............",".............",".............",".............",".............",".............",".............",".............",".............","............o","..........o..",".............","...o........."}

    Returns: "not found"

  21. {"........o.o...","o......ooo...o","o.oo...o....o.","o..oo.oo...o.o","o...o..oo.o..o","oo.oooo...oo..","..ooo....oo..o","oooo.ooooooo.o","o.o.....oo...o","..oo..oo..oo..",".o.o.o.o.o.ooo","..oo...o.....o","oo..o..o.oo...","oo.oooo.ooo.o."}

    Returns: "found"

  22. {"o....o.o.oooo.","ooo.ooo.oo.oo.","o.o.o.oo...o.o","o.o.oo...oo..o","o....o.oo..o..",".oo.oooo...ooo","oo...o.o.o..o.","..o..o..o....o",".o.o.o..o....o","o...ooooooooo.",".o.oo..oo...o.","oo.ooooooo.o..","oo..o.o...o.oo",".......o..o..o"}

    Returns: "found"

  23. {".o.oo..oooo.ooo","ooooooo.ooo.ooo","oo.oo.ooo.oooo.","oo.ooo.oo.ooo..","..oooo.oo.oooo.",".ooo.o.o....ooo",".o...o.ooo.oooo","oo.ooo.o.oooo.o",".o.oooooo.o..oo","o.o.o.ooo.ooooo","oooooooooooo.o.","oooo..o.ooooooo","..ooooooo.ooo..","ooo.oooooooo..o","ooo.o..oooooooo"}

    Returns: "found"

  24. {"ooooooooooooo","ooooooooooooo","oooooooo.oooo","ooooooooooooo",".oooooooooooo","ooooooooooooo","ooooooooooooo","ooooooooooooo","ooooooooooooo","ooooooooooooo","ooooooooooooo","ooooooooooooo","ooooooooooooo"}

    Returns: "found"

  25. {"o..ooo.o..o",".o..o..oo.o","...o.ooooo.","...o..oo..o","oo..oooooo.","...oo..o.o.",".ooooo..o.o","o.oo.oo.o..","o.o..oooooo",".ooooo.o..o","oo.o.o..o.o"}

    Returns: "found"

  26. {"..o.oo.oo.oo","o.ooo...oooo","ooo.ooo.oo.o","ooo...oo.oo.",".o.oooo.oo..","o...oo.o.oo.","oooooo.....o","...o.o..ooo.","oo...ooo.o..",".ooo.oooo...",".o..o....o..","..ooooo.o.o."}

    Returns: "found"

  27. {"oooooo","oooooo","oooooo","oooooo","oooooo","oooooo"}

    Returns: "found"

  28. {"oo.ooooo","ooooo.oo","oooooo.o","oooo.ooo","ooo.oooo","oooooooo",".o.oooo.","ooooo.oo"}

    Returns: "found"

  29. {"...oo.o.....o",".....o.o..o..","..o......o...","..o.........o","..o...o.o..o.","oo.o....o....","...o.........",".......o.....","ooo........oo","...o.......o.","..o.....o....",".........o...","o....o.....o."}

    Returns: "not found"

  30. {".o.......","o..o..o.o",".......o.","..o....o.","...o.....","o....oo..","...o.....","......o..","........."}

    Returns: "not found"

  31. {".....o....","..........","..........","...o...o..","..........",".......o..","...o......","....o....o","..........","..o.o....."}

    Returns: "not found"

  32. {"............",".........o..",".......o....","....oo......","...o...o.oo.","...o...o....","........o...","...oo..o....",".o..........","o...o..oo...","..........o.","..o.....oo.."}

    Returns: "not found"

  33. {"ooooooo","ooo.ooo","oooooo.","ooooooo","..ooo.o","oo.oo.o","oooo..o"}

    Returns: "found"

  34. {"......","......","......","......","....o.",".o...."}

    Returns: "not found"

  35. {"..o.oo..ooo","o..o.oo.oo.","ooo.o......","oo..oo.....","o.o..oooo.o","o..o....o.o","ooo.o..oooo","oo.ooo.o.oo",".o...ooo...","o.oooo.o..o","ooo..oo.o.o"}

    Returns: "found"

  36. {"ooo..ooooooooo","oo..oooooooooo","oooooooooooo.o","ooooo..ooo.ooo","ooo.oo.o.oo..o","ooooooooooo.o.","ooooooo.o..ooo","ooooo.oooooooo","ooo.oooo.ooooo","ooo.ooooo..ooo","oooooooo.oooo.","oooooooooooooo","ooooooooo.oooo","oo.oooooooooo."}

    Returns: "found"

  37. {"oooooo.ooo","o.oo.ooooo","oooooooooo","o.oooooooo","ooo.oooooo","ooo.oooooo","oooooooooo","oooooooo.o","ooo.oooooo","o.oooooooo"}

    Returns: "found"

  38. {"......o....o...",".......o.......",".............o.","..o............",".o..oo........o","...o...........","o.........o....","...............","...........o...","........o......","...............","....oo...o.....","..........o...o","...........o...",".......o......o"}

    Returns: "not found"

  39. {"..o...o..","o.ooo....","...o.o...","ooo...oo.",".oooo...o","o.oo..o.o","...oo.o..","..o.o....","o..o....."}

    Returns: "found"

  40. {".........",".........",".........",".........",".........",".........",".........",".........","........."}

    Returns: "not found"

  41. {"..oo.oo...","........o.","o..o.o.ooo","...oo...o.","o.ooo...o.",".o.o..oo..","...oo.oo..","...o.oooo.",".o..oo..oo",".o.o.oo..o"}

    Returns: "found"

  42. {"o.o.oo.oo..o.oo",".oo.ooooooooo..","..oooooooooooo.",".oo.o...oo..oo.","ooooooooo......","...ooo.o.oooo.o","oo.ooo.oo.....o","oo.ooooooo.oooo","o..oooo..o.oooo","ooo..oo.o..ooo.","oo.oooooooooo.o","o.o.o.oooo.o.oo","oo.oo.oo.oooooo",".ooooo.o.o.oo..",".oo...ooooooooo"}

    Returns: "found"

  43. {"oooooo.ooo","oooooooooo","ooooooo.oo","oooooooo.o","oooooooooo","oooooo.ooo",".ooo.ooo.o","o.ooooo.o.","ooooooooo.","oooooooooo"}

    Returns: "found"

  44. {"..............","..............","..............","..............","..............","..............","..............","..............","..............","....o.........","..............","..............","..............","...........o.."}

    Returns: "not found"

  45. {".ooo.o...o.o","o..oo....oo.","o...oo.oo..o","o...oo.o.ooo","ooooo.....o.","oo...ooo...o","ooo.o.o..ooo","oo...oo.....","....o..o....","o.o..oo....o","o....oo.oo.o","o..o..oooooo"}

    Returns: "found"

  46. {"ooooooooooo","o.ooooooooo","ooooooo.ooo","o.ooooooooo","ooooooooooo","ooooooooooo","ooo.o.o.ooo","ooooooooooo","ooooooooooo","ooooooooooo","ooooooooooo"}

    Returns: "found"

  47. {"oo.o.oo.","o..o.ooo","o..o..o.","..ooo.o.","oo..oooo","oooo.oo.","..o.o..o","o..ooooo"}

    Returns: "found"

  48. {"o...oo.o..ooo.","o.oo.o.oo.o..o",".o.oo.ooooo..o","o.o....oooo.oo","ooo.o..o.oooo.","o...ooo.ooo.o.","..o.oooooo.oo.","...o..oooo..o.","o.o..oo.oooo.o",".o....ooo.oo..","..oo.o.oo..oo.","o.oo.oo..oooo.",".ooo..ooo.o.oo","oo.o.o.oo.oo.."}

    Returns: "found"

  49. {"oo..o.oo.","oo..oo..o","oo.oooooo",".oo.ooooo","oo.o.oooo","..ooo..oo",".o..o.ooo","o.ooo..oo","oooooo.oo"}

    Returns: "found"

  50. {"......o.","......o.","........","........","........","...o....","........","........"}

    Returns: "not found"

  51. {"..........","..........","..........","..........","..........","..........","..........","..........","..........",".........."}

    Returns: "not found"

  52. {"..o.oo",".o.ooo",".oo..o","o..ooo","o..o.o","oo...o"}

    Returns: "found"

  53. {"oo.o.o.......","..o.o.oo....o",".oo.....o...o","o....oo....o.",".......o.....",".o.o....o.o..",".....o....o..",".............",".o........ooo","o......o..o..","o..........o.","o..o...o....o",".o.oo.o.o...o"}

    Returns: "not found"

  54. {"ooooo.ooooooooo","ooooo.ooo.oo.oo","o.o.ooooooooooo","oo.oooooo.ooooo","..oooooo.o.ooo.",".oooo.ooooo.oo.","o.oo.oooooooooo","o.ooooo.ooo.ooo","ooooo.ooo.ooooo","o.o.oooo.o.oooo","ooo.oooooo.oooo",".oo.oooo.o.oooo","..oo.o.oooooo.o","oo.ooooooo.o.oo","oooooooooo.o.oo"}

    Returns: "found"

  55. {"o.ooooo","ooo.ooo","ooo.ooo","oooooo.","ooooooo","o.ooooo","ooooooo"}

    Returns: "found"

  56. {"..o.ooo.o.","o.......o.","..o.oo...o",".o......o.","ooo.oo.o..","o...oo..oo","o...o..o.o","..o.o..oo.","...ooo...o","..o..oo.o."}

    Returns: "found"

  57. {"ooooooooooo..",".ooo.oooooooo","ooooooooooooo","ooooo.ooooooo","oooooo..ooooo","ooooooooooooo","oooooo.oooooo","ooooooo.ooooo","ooooooooooooo","ooooooo.ooooo","ooooooo.ooooo","oo.oooooooo.o","oooooooo.ooo."}

    Returns: "found"

  58. {".oooo.oo.ooooo","o.ooo..oooooo.","oooo.ooooooo.o","ooo.oooooo.ooo","oooooooooooooo","..ooo.oo.ooooo","ooo.ooo.ooo.oo","oo.ooooooooooo",".ooooooooo.o.o","oooo.ooo.o.oo.","ooooooooooo..o","oooooooooooooo","o.o..ooooooooo","o.oo.ooooooooo"}

    Returns: "found"

  59. {"....o.", "...o..", "..o...", ".o....", "o.....", "......" }

    Returns: "found"

  60. {"oooo.", ".oooo", "oooo.", ".oooo", "....." }

    Returns: "not found"

  61. {"oooo.", ".oooo", "oooo.", ".oooo", "....o" }

    Returns: "found"

  62. {"o.....", ".o....", "..o...", "...o..", "....o.", "......" }

    Returns: "found"

  63. {"....o", "...o.", "..o..", ".o...", "o...." }

    Returns: "found"

  64. {"..........", "..........", "..oo.ooo..", "..o.......", "..o.......", "..oo.ooo..", ".......o..", ".......o..", "..oo.ooo..", ".........." }

    Returns: "not found"

  65. {"o....", ".o...", "..o..", "...o.", "....." }

    Returns: "not found"

  66. {"oo.ooo", "......", "......", "......", "......", "......" }

    Returns: "not found"

  67. {"oooo.oooo", ".........", ".........", ".........", ".........", ".........", ".........", ".........", "........." }

    Returns: "not found"

  68. {"o..oooooo", ".........", ".........", ".........", ".........", ".........", ".........", ".........", "........." }

    Returns: "found"

  69. {"ooo.oo", "......", "..o...", ".o....", "o.....", "......" }

    Returns: "not found"

  70. {"oooooooo", "oooooooo", "oooooooo", "oooooooo", "oooooooo", "oooooooo", "oooooooo", "oooooooo" }

    Returns: "found"

  71. {"..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "oooooooooo" }

    Returns: "found"

  72. {"oo....", ".oo...", "..oo..", "...oo.", ".....o", "......" }

    Returns: "found"

  73. {"..........", "..........", "..oooooo..", "..o.......", "..o.......", "..oooooo..", ".......o..", ".......o..", "..oooooo..", ".........." }

    Returns: "found"

  74. {".....", ".....", ".....", ".....", "ooooo" }

    Returns: "found"

  75. {".....", ".....", ".....", ".....", "o...." }

    Returns: "not found"

  76. {".....", ".o...", "..o..", "...o.", "....o" }

    Returns: "not found"

  77. {"o.....", ".o....", "..o...", "...o..", "......", "oo.ooo" }

    Returns: "not found"

  78. {".ooooo", "..oooo", ".oooo.", "..oooo", "......", "......" }

    Returns: "found"

  79. {"......", ".....o", "....o.", "...o..", "..o...", ".o...." }

    Returns: "found"

  80. {".ooooo", "......", "......", "......", "......", "......" }

    Returns: "found"

  81. {"o....", "o.o..", "o.o.o", "o.o..", "o...." }

    Returns: "found"

  82. {"o....o", "....o.", "...o..", "..o...", "......", "......" }

    Returns: "not found"

  83. {"..........", "..........", "..ooo.oo..", "..o.......", "..o.......", "..oo.ooo..", ".......o..", ".......o..", "..oo.ooo..", ".........." }

    Returns: "not found"

  84. {".....", ".....", ".....", ".....", "....o" }

    Returns: "not found"

  85. {".....", ".....", ".....", ".....", "....." }

    Returns: "not found"

  86. {".....", "o....", "o....", "o....", "o...." }

    Returns: "not found"

  87. {".ooo.", ".oooo", "oooo.", ".oooo", "....o" }

    Returns: "not found"


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: