Statistics

Problem Statement for "Snaky"

Problem Statement

       xxxxx...
       ....xxxx
       .x.....x
       .xxxxxxx
Your are given a picture of a snake. Lowercase 'x' characters indicate parts of the snake, and '.' characters represent empty areas. The snake consists of a sequence of horizontal and vertical segments. Successive segments in the snake share an 'x', which is considered to be in both segments. No two 'x's from different segments of the snake are horizontally or vertically adjacent.

Given a String[] snake, return the length of the longest segment in the snake. The picture is formed using successive elements of snake as successive rows in the picure.

Definition

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

Constraints

  • snake contains between 1 and 50 elements, inclusive.
  • Each element of snake contains the same number of characters.
  • Each element of snake contains between 1 and 50 characters, inclusive.
  • Each character in each element of snake is a period ('.') or a lowercase 'x'.
  • If two 'x's are adjacent to each other in the picture, they are in the same segment.
  • The picture shows just one connected snake, using at least 2 'x's.

Examples

  1. {"x.xxx.xxx", "x.x.x.x.x", "xxx.xxx.x"}

    Returns: 3

    This snake consists of 9 segments, each of length 3.

  2. {"xxxx..", "...x..", "...x..", "......"}

    Returns: 4

    One segment is length 4, the other is length 3.

  3. {"...x................", "...x................", "....................", "...................."}

    Returns: 2

  4. {"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

    Returns: 50

  5. {".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",".x", ".x",".x",".x",".x",".x",".x",".x",".x"}

    Returns: 50

  6. {"x.xxx..xxx", "x.x.x..x.x", "xxx.xxxx.x"}

    Returns: 4

  7. {"...xx"}

    Returns: 2

  8. {"....................", ".......xxx....xx....", ".........x....x.....", ".........xxxxxx....."}

    Returns: 6

  9. {"....................", "xxxxxxxxxx....xx....", ".........x....x.....", ".........xxxxxx....."}

    Returns: 10

  10. {"....................", ".......xxx....xxxxxx", ".........x..xxx.....", ".........xxxx......."}

    Returns: 6

  11. {".", ".", "x", "x", "."}

    Returns: 2

  12. {".", ".", "x", "x", "x"}

    Returns: 3

  13. {"..............................", "..........................x...", "..........................xxxx", ".............................x", ".............................x"}

    Returns: 4

  14. {"..............................", "..........................x...", "..........................xxxx", ".............................x", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

    Returns: 30

  15. {"xxxxxxxxxxxxxxxxxxx.xxxxxxxxxx", "..................x..........x", "..................xxxxxxxxx..x", "..........................xxxx", ".............................."}

    Returns: 19

  16. {"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "...............................xx.................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................."}

    Returns: 2

  17. {"xx"}

    Returns: 2

  18. {"x","x"}

    Returns: 2

  19. {".....xxxx" }

    Returns: 4

  20. {"x.xxxx", "xxx..." }

    Returns: 4

  21. {".xx.", "..x.", "..x." }

    Returns: 3

  22. {"..xx", "....", "...." }

    Returns: 2

  23. {".xx" }

    Returns: 2

  24. {"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }

    Returns: 34

  25. {"xxxxxxxx", ".......x" }

    Returns: 8

  26. {"xx.xxxxx", ".xxx...." }

    Returns: 5

  27. {"xxx", "..x", "..." }

    Returns: 3

  28. {"xx...xxxx", ".xx.xx...", "..xxx...." }

    Returns: 4

  29. {"......", "......", "......", "......", "......", "xx....", "......", "......" }

    Returns: 2

  30. {".", "x", "x", "." }

    Returns: 2

  31. {"xxx.xxxxx", "..xxx...." }

    Returns: 5

  32. {"xxxxx" }

    Returns: 5

  33. {"xx", ".x" }

    Returns: 2

  34. {"xxxxxxxxxxxx" }

    Returns: 12

  35. {".xxxx" }

    Returns: 4

  36. {"xx...xxxxxx", ".xxxxx....." }

    Returns: 6

  37. {"xxxxx", "x...." }

    Returns: 5

  38. {"xxxxx", "....." }

    Returns: 5

  39. {"..x", "..x" }

    Returns: 2

  40. {"xx" }

    Returns: 2

  41. {"...xx" }

    Returns: 2

  42. {"xxxx", "...." }

    Returns: 4

  43. {"x..", "x..", "x.." }

    Returns: 3

  44. {"..xxx" }

    Returns: 3

  45. {"xxxxxxxxxx" }

    Returns: 10

  46. {"xxxx" }

    Returns: 4

  47. {"..xxx", "..x.." }

    Returns: 3

  48. {"x.......", "xxxx....", "...x....", "xxxx....", "x.......", "x.......", "x.......", "x......." }

    Returns: 5

  49. {"xxxxxxx" }

    Returns: 7

  50. {"xxxxxxxxxxxxxxxxxxxxxxx" }

    Returns: 23

  51. {".xxxxx" }

    Returns: 5

  52. {".....", "xxxxx" }

    Returns: 5

  53. {"xx.....", ".x.....", ".xxxxxx", "......." }

    Returns: 6

  54. {"xxx", "x..", "x..", "x.." }

    Returns: 4

  55. {".", ".", "x", "x" }

    Returns: 2

  56. {"xx..xxxx", "x......x", "xxxxxxxx" }

    Returns: 8

  57. {"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }

    Returns: 50

  58. {"xxxxxxxxx" }

    Returns: 9

  59. {"........xxxx" }

    Returns: 4

  60. {"........xxxx..." }

    Returns: 4

  61. {"...xxx" }

    Returns: 3

  62. {"..xxx", "....x", "xxxxx" }

    Returns: 5

  63. {"xxxxx...", "....xxxx", ".x.....x", ".xxxxxxx" }

    Returns: 7

  64. {"xxxxxx" }

    Returns: 6

  65. {"....xxxxx" }

    Returns: 5

  66. {"xxx", "x.x", "..x", "..x" }

    Returns: 4

  67. {"..xxxx", "..x..." }

    Returns: 4

  68. {"..xx.....xxxx", "...xx...xx...", "....xx.xx....", ".....xxx....." }

    Returns: 4

  69. {"xxxx", "....", "....", "...." }

    Returns: 4

  70. {"xxxx", "x...", "x..." }

    Returns: 4

  71. {"xxxxxxxxx", "x........", "x........" }

    Returns: 9

  72. {".....", "xxxxx", "....." }

    Returns: 5

  73. {"x", "x", "x" }

    Returns: 3

  74. {".x.", ".x.", ".x." }

    Returns: 3

  75. {"x.xxx.xxxx", "x.x.x.x..x", "xxx.xxx..x" }

    Returns: 4

  76. {"xx", ".x", "xx" }

    Returns: 3

  77. {"xxxxxx", "......", "......", "......" }

    Returns: 6

  78. {"....xxxxxx", "xxxxx....." }

    Returns: 6

  79. {"xx", ".." }

    Returns: 2

  80. {"x.", "x.", "x.", "x." }

    Returns: 4

  81. {"......", "..xx..", "......" }

    Returns: 2

  82. {"....xxx", "...xx.." }

    Returns: 3

  83. {"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................x", ".................................................x", ".............................................xxxxx" }

    Returns: 5

  84. {".x....", "xx....", "x.....", "x.....", "x....." }

    Returns: 4

  85. {"xxx" }

    Returns: 3

  86. {"................xxx" }

    Returns: 3

  87. {"xxx", "..x", "xxx", "x..", "xxx" }

    Returns: 3

  88. {"x.xxxx", "x.x...", "xxx..." }

    Returns: 4

  89. {"x.xxxx", "xxx...", "......" }

    Returns: 4

  90. {"x.", "x.", "x.", "x.", "x." }

    Returns: 5

  91. {"....xx" }

    Returns: 2

  92. {"xx.xxxx", ".xxx..." }

    Returns: 4

  93. {"...............xxx" }

    Returns: 3

  94. {"...xxx..............", "...x................", "...x................", "...x................" }

    Returns: 4

  95. {"xxxxxxxxx", "........." }

    Returns: 9

  96. {"x", "x", "x", "x", "x" }

    Returns: 5

  97. {"xx..", ".xxx" }

    Returns: 3

  98. {"xx..", ".x..", ".xx.", "..x.", "xxx.", "x...", "x..." }

    Returns: 3

  99. {"..x..", "..x..", "..x.." }

    Returns: 3

  100. {"...x................", "...x................", "...x................", "...x................" }

    Returns: 4

  101. {"..x", "..x", "x.x", "xxx" }

    Returns: 4

  102. {".xxxxx", ".....x", ".xxxxx" }

    Returns: 5

  103. {"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }

    Returns: 32

  104. {"x.x", "x.x", "x.x", "xxx" }

    Returns: 4


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: