Statistics

Problem Statement for "Coastlines"

Problem Statement

You are given a String[] map depicting the layout of several islands. A '.' indicates water, while 'X' indicates land. Two cells that are adjacent horizontally or vertically are considered part of the same island. Assume that all area outside the bounds of the given map is all water.

Any place where a land cell is adjacent, horizontally or vertically, to water, is called a coastline. A single land cell may have as many as four units of coastline. The following examples have 4, 6, 8 and 8 units of coastline, respectively:

....    ....    ....    ....
.X..    .X..    .X..    .XX.
....    .X..    .XX.    .XX.
....    ....    ....    ....

Find the total length of coastline of each island, and return the largest of these lengths.

Definition

Class:
Coastlines
Method:
longest
Parameters:
String[]
Returns:
int
Method signature:
int longest(String[] map)
(be sure your method is public)

Constraints

  • map will contain between 1 and 50 elements.
  • Each element of map will contain between 1 and 50 characters.
  • Each element of map will contain the same number of characters.
  • Each character of each element of map will be 'X' or '.'.

Examples

  1. {"...", ".X.", "..."}

    Returns: 4

    Example from the problem statement. The single land cell is bounded on all four sides by water.

  2. {".XX", ".X.", "..."}

    Returns: 8

    Similar to an example in the problem statement, the total coastline is 8.

  3. {"."}

    Returns: 0

    There's no coastline at all.

  4. {"XX"}

    Returns: 6

  5. {".XX...", "XX...X", "X...XX", "......", ".XXXX."}

    Returns: 12

    Here, there are multiple islands, with varying coastline lengths.

  6. {"..","..","..","..","..","..","X.","..","..","..",".X","..","..","..","..","..","..","..","..","..","..","..","..","..","..","X.","..","..",".."}

    Returns: 4

  7. {"XXX.X...XX.X.XX.....XXX.X.X..","XXX...X..X.X.XXXXX.XXX..XXX.X","XXXXXXXX.XX..XX.XX.XXX..XX.XX",".X..XX.XXXXX..XXXXXXX..X.XX.X","..X.X...X..XXX.X..X.XXXXXX..X",".X.XXX.XXX.X.X.X......XXXX...","XX..XXXXXX.XXXX.XX.XXXXXX....","X..XXXX.X.XXXX.XXX..X...X.XX.",".XX.XXX.XXXX....XX.X..XX.XX..",".XX...X.XXXXXXX.....X.XX.X.X.",".XXX.X..X.....XXXX.XXX.X.XXXX","X........X.X.X.XX....XXXXX.XX",".X.X.XX...XXXXX.....X..XXX.X.","...X.X.X.XX.XX.XXXXX.X.....XX",".XX.XXXX..XXXX..XX..XXX.....X",".XXX....X.X.XXX.XXX..XXXXX.X.",".XXXXX.X..XXX.XXX......XXXX.X","..XX.XX..XX.XXX...X..XX.X..X.","....X..X.XXX.X..XXXXXXX.XXXXX","XXX...XX.X.X.X...X.X.XX.XX.X.","..XX.XXXX..XXXXX..X..XXX.XX..","..X.XX.X.X...XXX.X.XXXXX.XXXX","XXXXX.X....XX.XXX.XXXXXXXXXXX",".X.XXXX.XX.XX...XXXXX.XXX.XXX",".XXXX.X..X.XX.XXX.XX.XXX.XXX.","XX.XX.XX.XXX.X..X.X..XXX..X.X","X..XX....X.XXXXXX.XXX..XXXXXX","XX.XX.XX..X..XXX.XX.XX..X.XXX","....XXXXX.X..XXXX.XXX...XX..X",".XXX.X..XXX..XX..XX.XX.X.X...","XX..XXXXX..XXXX.XX.XXX...X.XX","..X...X.X...X..X.X..XXXX.X.X.","X....X.XXXX..XXXX...XXX..XX.X","XX..X.X..XX..X.X.XX..X.X.XXX.","X.XX..X...XXXXX.....XX.X..X..","XX..X......X..X....XX..XXXXXX","XX.X..X.XXXX.X..XXX.XX.XXXX.X","XX.X.X..XXX.XX.X.XXXXXX.X.XXX","XXX.X.X..XX.X.XX.X.X.XXXX..X.","X.XXXX.XXX.XX.XXXX...X.XX..X.","XX.XX.X.X..XX.XXX.XX.X.XX...X","X.X.XX....X....XX.X......X...","...X.XXXX..XXX..X...X..XXXX.X","..XX.XXXX.XX.X..XXXX..XX....X"}

    Returns: 450

  8. {"XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXX.","XXXX.XXXX","XXXXXXXXX","XX.X.XXXX","XXXXXXXXX","XXXXXXX.X","XXXXXXXXX",".XXXXXXXX","XX.XXX.XX","XXXXX.XXX","XXXXXXXX.","X.XXXX.XX","XXXXXXXXX","XXXXXXX.X","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXX.","XXXXXXXXX",".XXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXXXX","XXXXXXX.X"}

    Returns: 138

  9. {".XX..XX.XX.XX..XX.X...X.X....","X.XXX.XX.X..XXXX.X..X.XXX.X..",".X.X.XX....XXXXX.XXXXXXX..XX.","X..XXXX.X.X...X.X.XX.XX...X..",".......XXXXXXX.XXX..XXXXXX..X","..XXX..XXX...X..XXXXXXXX.XX.X","XXXX.XXXXXX....XXXXXXX.XX.XX.","..X.......XX.X..X.X.XXXXXXXXX","XX.XX.X.X.X.XXX.X....X..XXX.X","..XXXX.XXX.X.X.X..X.XXX...XXX","....XXXX.XX.XXX.XX.X...XXXX..",".X.XXXX..X..XXX...X..XX.XXXX.",".X.XX....X.XXXX.X.XXXXXX.XXXX","X.X.XX..X.X..XXXX..X.....XXXX","XXX.XX..X.XX.X.XXXX.XXX..XX.X",".X..X.X..X..X..X..X..X.XXXX.X",".XX.XX...XX.XX.XX......X..XXX","XX..XXX..XXXXXX.XX....XXX.XX.","..XXXX....X..X.XXX.XX.XXXXX.X","..XX.XXX...X.XXXX...X.XXXXXX.","...XXXXX.XXXXXXX.XX.XXX.XX.X.",".X...XX.XXXXXX....XX.XX...XXX",".XXXX..XXXXX...XX....XXXXX..X","XX..XXX.X....XXX.XXX.X...XX..",".X...XXX.XX..XX...X.XXXXXX.X.","...X.XXX.....X.X..XX..XX.XXXX","XXXXX.XXX..X..XXX.XXX..XXX.X.","XXXX.XXX.XXXXXX.XXXX...X.X...","XX.X.X....X..XXX.XXX......XX.","X......XXXXXXXXX.X.X.XXXX.X.X","X..X..XXXX.....XX.XX.X..XX.X.","X.X.X.X.XXXX..X.XXXXXXX..XXX.",".X..X.XXXX.XX.X....X.X.X..X.X","X..X.....X.XXX..XXXXX..X..XXX","..X.X.X...X.X.X.XX.XXXX.XXXXX","X.XXXX.X.XXXX..X..XX..X.X.XXX",".X.XXXX.X..XXXXXXX...XXX...XX",".X.X.XX..XX.XXXXXXXXXX....X.X"}

    Returns: 228

  10. {".XXXX.XXX.XXXXX....XXXX..X.X.XXXX..XX.",".XXX.XX.X.....XXX....XXX.X.X..X..X.X.X","XX...XX.X..X.XXX..X...X.X.X.X...XXX..X","X.X..XXX.X.XXX.XXX...X.X.X........XX.X",".X...XXX.XXX.X.XXXX.X.XX.XX.XX..XXX.XX","XX.X...X..XXXXX..X.X.X...XXX.....X..X.","...X...XX.X.XX.XXXXX..XX...X.XXX.X.XX.","XX..XXXXX...XXX.X..X........X.X....XX.","..XX.XX...X.X.XXX.XXXX.XXXXXX....XX.XX","XX..X..X..XX.XXX....XXXX.XXX..X......X","........X...X....XXXX...X.X.X.X.X..X.X","X.X.XX.X...XXX.X.XXXX.X.X.X.XX...X.X.X",".XX.XX.XXXXX....X.X.X.X.XX.X...XXXX.X.","XXXXXX...X..X.XX.XXXX.XX.XX..XXX.X.XXX","......X....XXX.XXX..X....XX...XX...X..","X.X..XX..XXXXX..X.X..XXX....X..X.XX...",".X..XXX.XX.X..XX..X.X..X.XXX.....XX..X","XXXX..X.XXXX.XXX...X.X.X.XX.XX.XX...X.","XXXX.XXXX....X.XX...XXX.XX....XX....X.","X.X.X...XX.X.XXXXX..X..XXXX.XXXX.XXX..",".....XX.XX.XXXX.X...X.XXXX.XXX.X..X...",".XXX.X.X.X.X.XXX....X.X..XX....X..XX..","X.XXX...X..XX.XXX.XX..X..XXXXXX....XX.",".XX.X..XXXX.XXXXXX.X...X..XX.X.X..X.X.","XXXXX.XX.....X..X..XXXX..XXX..XX.XXXXX","...XX..X.XXXX.XX.XXX..X...XX..XXX...X.",".XXX.X....X..X.X..X....XX..X...XX.X..X","XXX.X..XXX.X..XXXX..X.X....XX...X.XX.."}

    Returns: 160

  11. {"..X..X.....X.XXX.XXXX.X.XXX.XXX.......XX......XXXX",".XX.X.XX.XXX...X.XXXX...X...X.XX....X..X.XXXX.XX.X",".XX.X..X...XX.X.X.....XX...X.XX.X..XXX..XXXXXXXXXX","X..X.....X.XX.XXX.X.XX...X.XX..XXX..X....XX.......",".XXXXX..XXXX.XXXXX..XX.XXXX..X.X.X..X.XX.X..XX...X","XX.X.XX.X.XX.XXX.X..XXXX...X..XXXX.XXX.XX..XX...XX",".XX.X.XX.....X.X.XX..XXX.X.XX.XXX.X.....XX.XXX.X.X","XXXX.XX.XXXXX...XX..XXX...XXXXXXX...XX....X..XXXX.","......XXX..X.X...X.X.XXXXX.XX.XX.XX...X.X....X.XX.","XXXX..XXXXX.X..XXX..X..X..XXX..XX.XXXX...XX....XXX","XX...XXX.XX.X....X.XXX.....XXX.X...X.X..XXXX..XX.X",".XXXX.........X..XX..XX.XX.XXX.X.XX.....XX.X.XX.X.",".XX.X..XX..XX.X.X....XXXX..XX.XXXXXX..XX.XX.XX..XX","X......XX...X..XX....XXX...X.X..X.XXXX.X......X.X.","..XX.XX..X..X..X.XXXX.XXX.....X.XXXXX.X.X.XXXX...X","X.X..XXXX..X.X.XX..X.....XXX.XX..XX.XX.X.X.XX..XXX","X.XX.....X.X....X..X.XXX.XXXXX.X.X.X.XX...XX.X...X","XX.X.X...X.X.....XX..XX.X.X.XX.X....XXX.....X.XX.X",".X.XXX.XX....X.X..XXXXX...XXX..XXXX...XX..X..XXXXX","XX.X..X.X.XX....XX..X.XXXXXX....XXXXX.X...X...X..X",".XXX.XX.XXXXXX.X.XXXXX.XX..XXXX....X...XX.XX.X....","..XX.XXXXX..X....X.X.XX.X...X......XX.X.XXX...X.X.","..XX.XX.X.X..XX.X.X...X.X....XXXX.XXXX.X.X.XX.XXX.","X...X..XXX....XXXX.XX....XX..XX.XXX......X.XX..XXX","X.XXXX....X...XXX.XXX..X.XXXXX.XX.XXXX....X.X..XXX","XXX...XX.XXXX.XX.....X..XX......XX...X.X.XX.X....X","X...X.X.XXX.X.X.XX..XX.X..XX...X...X.X..XXX.XX..XX","XX.X........XXXX...X..XXXX.X...X.X.XX.XXXXXX..X.XX","XXXX.X.XXX...X..X....X....XXXXXX.XX.XXXXXXX.X.XXXX","XX...X..XXXXX.....XX..X.X...XXXXXXXXXX....XX.X...X","...XX...XX..XX..X...X..XXX.X.X..X.X..X.XXX..XXX.XX",".XX.X..X.X..X.X..X.XXX.XX..XXX.....X.X.X.XXX..XXXX","XX.X..XX..X.X....XXXX..XX.X.XXX....X.X..X.X.XXXX..",".XXXXX...X...XXX.X.X..XX.XX..X..X........XX.XXXX..","X.XX.XX.X.XX..X....X.X.X..XXX.XXXX..X..X..X....X.X",".X.X.XXX.XX...X...X...XX.X....X...XXXXXX..XX.XX...","..XXX..XX..X..X.X.....XX.....X..X..X..XXXXXXXXXX.X",".XX.X.X.X....X.X...X..XXXXXXX.X..X..X..X..X.X..X..","..X.XX.XX.XX..XXXXXX.X...XXX....XXX.XXXX.XXX.X...X","XXXXXXXX..XXXXXXX.....XXX...X..X.XXX..X.XXXXXXXX.X","XXX...X.XX.XXXX.....XX..X....XXX.X.X.....X...X....",".XXX..XX..XXX..X......XXXXX.XX..XX.XX...X.X.XX.X.X","X.X...X..X.XX...XX..XXX..X.X...XX...X.X.XX..X.XXX.","X.XXXX.X..XXX.XXXX.XXXXXXXX..X.XXX.XXX..XX.X.XX.X.",".XXX...X.X....X.XXXXX.XX.X..XX.X...X.XXXX...X.XXXX","XX..X..XX....XXXX.X..X.X.XX..X...XX...X..X..X.XX..","X.XXXX..XX..XX.XX.XXXXXX.XX..XX.X....XX.XX.XX.XX.X","X..X.X...........X.XX..XXX....XX....XXX.X..XXXX...","X.X..X...XX.X.X.XXX.X.XX..XXXXX.X....X.X..XXXXX...","X...XXXX.XX.X..XXX...X..X.X.XXXXXX..XXXXXXXXXXXX.."}

    Returns: 134

  12. {"..............................X...................","..................................................","..........X..........X........................X...","..................................................","..................................................","...X..............................................","..................................................",".............X...............X....................","..................................................","..................................................","..................................................","..................................................","...X..............................X...............","..................................................","..................................................","...........................................X......","..................................................","..................................................","..........................X.......................","..................................................","..................................................","X.................................................","..X.......................................X.......","..................................................","..................................................",".......................................X..........","....................................X.............","..................................................","..................................................","..................................................",".....................X............................","............X.....................................","................X........X........................","..................................................","..........................................X.......","..............................X...................","................................................X.","................................X.................",".............X....................................","..................................................","..................................................",".............................................X....","..............X.........X.........................","....X.............................................","..................................................","..................................................",".............................................X....","..................................................","..................................................",".......X.X........................................"}

    Returns: 4

  13. {"...X......X..............X.XXX..X..X.......X......","...X..............X..........X.......X...X........",".X.....X....XX....X....X...................X......",".......X..X.........X........X........X.X........X","X..XX...........XX.............X...........X....X.","...X...X...............X..X.....X.X.X......X..X...","....X.....................X.............X.........",".....X...............X..X.....X.X..X.X.....XX....X","..X......X....XX..X........X...........X.X......X.","...X....................X....X.XX............X....","X.X.....X..X............X....X..X.......XX....X...","..........X.X..X..........X.X....X......X.......X.","............X...............XX..................X.",".XX..X............XX........X.........X..........X","....X.....X.....X.XX........X.....................","..........................XX..X.......X.X..X......",".............X.....X..........XXX......X...X......","..X..X..........X.........X.........X...X.......XX","..........X..X...XX.....X...............X.........","......X...................................X.......","XX....XX..X.......X....X.......X...X..............","...XX.....X............XX....XX...............X...","....X..........X.....X..........XX................","........X.......X....XX....X...X......X.X....X..X.",".....X...X.......X..........XX..X.X....XXXX...X...","..X..............X..X.XX.......X..................","........XX..X.....X....XX...............X...X.X...",".X.X...X......X........X....X..X......X...X.X.....","...X.................X.........XX..........X.X....","...X....X....X.........X...X....X....X............","..................X.........X...X..X..............",".......X.............XX.X....X.....XX.X...........","...X....X.....XX.X..........X.X...X...X.......X...",".......X...X.....X............X...................",".XX.....X..X.....X...X...X.........X..............",".......X..X...X.....X.........XX...........X.....X","....X..........X...........X........X..X.....X....","...X.........X..........XX.....X..X....X...X.X.X..","......X........X..X................X............X.","..X..........X..............XX.............XX.X...","....XX.....X..X.......XX.....X.X..X...X....X......","....X...............X..X......................X..X","X..........X...X..X...X.X...............X.X.X.X.X.",".X..X......X.....X.X......................XXXX..X.","...X....X................XX.............X....X..X.",".........X................X.........X..X..X....X..",".X...X.....XX..X...........X..X.....X....XX.......","X..........XX...X..........X..........X.X.X...X...",".XX........X.XX....X............X.X...............",".................XX.......X.X...X.X..............."}

    Returns: 16

  14. {"X.XXX..XXXXXXXXXXXX.XXXXXXXXXXXXXX.XXXX.XXXXXXXX.X","X.XXXXXXXXXXXXX.XXXXXX.XXXXX.XXXXXX.XXXXXX.XXXXXXX",".XX.XXXXXXXXX.XXXXXX..XXXXXXXXXXXXXXXXXXXXXXX.X.XX","X.XXXXXXXXXXXXXX.XXX.X.XXXXXXXXXXX.X.XXXXXXXXXXXX.","X..XXX.XXXXXXXX.XXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXX.X","XXXXXXXXXX.X.X.XXXXX.XXXXXXX.XXXXXXXXXXX.XXXXXXXXX","XX.XXXXX..XXXXXXXX.XXXXXXX.XX.XXXXXXXX.XXXXXXXXXX.","..XXXXX.XXXXXXXX..XXXXXXXXXX.XXXXX.X.X.XXXXXXXXXXX","XXXXXXXXXXXX.XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXX","XXXXX.XXX.X.XXXXXXXX.XXXXX.XXXXXX.X.XXXXXXXX.XXXXX","X.XXXXX.XXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXX.X..X","..XXXXXXXXXXXXXXX.XXXXXXX.XXXX..X.XXXXXX.XXX.XXXXX","XX.XXXXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXXX.XXX.X","XXXXXXXXXXXXXXXXX.XXXX.XXXXXXXXX.XXXXXXXX.X.XXXXXX","XXXXXXX.XXXX.XXX.XXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX","XX.X.XXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXX.XXXXXX.XX.X.","XXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXX.X","XXXXXXXXXXX.XXXXXXX.XXXXXXXXXXX.XXXXXX.XXXXXXX.X.X","XXXXXXXXXX.XXXXXXXX.XXXXXXXXXXXXXXXXXXXXXX.XXX.X.X","XXX.XXXXXXXXXXXXXXXX.XXXXXX..XXXXX..XXXX.XXXXXXXXX","XXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.XXXXXXX.XXXXXX","XXX..XXXXXXXXXX.XXXXXXX.XXXXXXXXXX.XXXXXX.XX.XXX.X","XXXXXXXXXXXXXXX.XXX.XXXX.XX.XX.XX.X.XX.XXX.XX.XXX.",".XX.X..X.X.XXXXXXXXXX.XXXXXXX.XXXXXXXXXX.XXXXXXXXX",".XX.X.XXX.X.XXXXXXXXXX.XXXXXXXXX.XXXXX.X.X.XXX.X.X","X..XXXX.XXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXX.X.XXXXX","XXXX.XX.X.X.XXX.XXX.XXXXXXXXXXXXXXXXX.XX.XX.XXXX..","XXX.XXXXXXXXXXXXXXX..XXXXXXXXX.XXX.XX.XXXXXXXXXXX.","XXX.X.XXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXX.XXXXXXXX","XXXXXX.XXXXXXXXXXXXXXXX...XX.XXXXXXXXX.XXXX.XXX.XX","XXXXX.XXXXXXXXX.XXXXXXX.XXXXXXXXXXX.XXXXXXXXXXXXXX","XXXXXXXXXXXXXX.XXXXXXXXXX.X.XX.XXX.XX.XXXXXXXXXX.X","XXXXXXXXXXXXXXXXXXXXX..XXXX..XXXX.XXXXXXXXXXXXXXXX","XXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXX.X.X","XXXXXXXXXXXXXXX..XXXXXXXXXXXXX.XX.XXXXXXX.XXXXXXX.","X..XXXXXXXXXXXXXXXX.XX.XX.XX..X.XXXXXXXXXX.XXXXXX.","XXXXXX..XXXXXXXXXXXXXXXX.XXX.XXXXXXXXXX.XX.XXX.XXX","X.XXXXXXXXXX.XXX.XXXXXXXXXX.XXXXXXXXXXXXXXX.X.XXXX","XXXXXXXXXXXXXXXXXXX.X.XXXXXXXXXXXXXXXXXXXXXX.X.XXX","XXXXXX.XXXXXXXXXXXXX.XXXXX.XXXX.XXXXXXXXXXXXXXXXX.",".XXXXXX..X.XXXXXXX.XXXXXXXXXX.XXXXXXXXX.XXXXX.XXXX","XXXXXXXXXXXXX.XX.X.XXXX.XXX.XXXX.XXX.XXXX..XXXXXXX","XXXXXXXXXXXXXXXXXXXXXXXXXX.XX.XXXXXXXXXXXXXXXX.XXX","XXXXXXXXXXXXXXXXXXXXX.X.XXXXXXXXXXX.XXXX...XXXX.X.",".XXXXXXXXXXXXXXXXXXXXXXX...XXXXXXXXXXXXXXXX.XXXXX.","XXXXXX..XXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.XXXXXXXXX.X","XXXXXXXXXXXXXXXXXXXXXX.X.XXXXXX.XXX.XXXXXX.XX..X.X","XXXXX.XXX.XXXXXXXXXXX.XX.XXXXXXXXXXXXXXXXXXXXXXXXX","XXXXXXX.XXXXXXXXXXXX..XXXXXXXXXXXXXXXX.XXXXXXXXXX.",".XXXXXXXXXXXXXXXXXXX.XXXXXXXX.XXXXX.XXXXXXXXXXXXXX"}

    Returns: 1284

  15. {"...X......X.............X.X........X......X.......",".X....X.X.....................X....X....X........X","..X....X.......X.......X......X...............X...","X...X..X..X......XX..............X............X...","...........X...............X.X..............X.X...","...............X................X.................",".X...........X.............X.............X........",".......X......X............X..X.......XX......X...","......X..X.......X...........X...........X.X......",".X.....................................XX..X...X.X","..........X...X.........XX...X................X...",".......X............X.........X.......X......X....",".....X..........X...........X...................X.","XX.X.X...X............X.....X.............X......X","X.....X.X...X.X...X..XXX.................X...X....",".X..................X.X.........X.....X......X....",".X..X.....X......X....XX.......X....X........X.X..","...............X.......X.........X..X.............","..X......X..........X.......X.X...X...............","X..X..X.................X......................X..","..X...X.......X.....X....X...................X....","....................................X.............",".......X................X.X...X...X......X........","X.........................X..X...X.X..............","X.....X........X.X..XX.....X.....XX....X.....X....","X....X.X...X....X.................................","X.....X...........................................","..X..............X.....................X.....XX...",".....X.....X.............X..X..X......X...........",".....X..............................X.....X.......","...X..........X...XX...........................X..",".....................X.............X.X.....X..X...","X......X...............X...X.................X.X..",".X....X......XX..X..X.X..X.....X...X......X.......","....X.X.................XX.........X....X......X..",".................XX.......X........X..............","..X.............XX..X........X.X.X....X..........X","...X.......X...........XX......X.................X","........XX....XXXXX........X......X.X.X...........","......X...X......X..X....X...............X........",".............X.....X.X.........X.X.XX..X..X.X....X",".......X...X...X.....X.....X.X...........XX.......","...X.........................X.........X..........",".........................X..X.....................","...............X...........................X.X....",".......XX........X.....X......XX......X......X..X.","..X..........X......X.X.X........X..X....X........",".......X...............XXX........XX..............","...X...................X...........X...X.....X....","...X.................X.....X........X............."}

    Returns: 18

  16. {"XXX", "X.X", "XXX"}

    Returns: 16

    This island has a lake inside it, but that internal "coast" also counts.

  17. {"XXXXX", "X...X", "X.X.X", "X...X", "XXXXX"}

    Returns: 32

    An island in a lake inside an island, is a separate landmass.

  18. {".XX...", "XX...X", "X...XX", "......", ".XXXX." }

    Returns: 12

  19. {"X.", ".X" }

    Returns: 4

  20. {".X..", ".X..", "....", "...X" }

    Returns: 6

  21. {"X", ".", "X" }

    Returns: 4

  22. {"XXXXXXXXXX", ".........X", "XXXXXXXXXX", "X.........", "XXXXXXXXXX", ".........X", "XXXXXXXXXX", "X.........", "XXXXXXXXXX" }

    Returns: 110

  23. {"X" }

    Returns: 4

  24. {"..X", "..X" }

    Returns: 6

  25. {"X.XXXX.XX" }

    Returns: 10

  26. {"." }

    Returns: 0


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: