Problem Statement
xxxxx... ....xxxx .x.....x .xxxxxxxYour 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
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
{"x.xxx.xxx", "x.x.x.x.x", "xxx.xxx.x"}
Returns: 3
This snake consists of 9 segments, each of length 3.
{"xxxx..", "...x..", "...x..", "......"}
Returns: 4
One segment is length 4, the other is length 3.
{"...x................", "...x................", "....................", "...................."}
Returns: 2
{"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
Returns: 50
{".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
{"x.xxx..xxx", "x.x.x..x.x", "xxx.xxxx.x"}
Returns: 4
{"...xx"}
Returns: 2
{"....................", ".......xxx....xx....", ".........x....x.....", ".........xxxxxx....."}
Returns: 6
{"....................", "xxxxxxxxxx....xx....", ".........x....x.....", ".........xxxxxx....."}
Returns: 10
{"....................", ".......xxx....xxxxxx", ".........x..xxx.....", ".........xxxx......."}
Returns: 6
{".", ".", "x", "x", "."}
Returns: 2
{".", ".", "x", "x", "x"}
Returns: 3
{"..............................", "..........................x...", "..........................xxxx", ".............................x", ".............................x"}
Returns: 4
{"..............................", "..........................x...", "..........................xxxx", ".............................x", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
Returns: 30
{"xxxxxxxxxxxxxxxxxxx.xxxxxxxxxx", "..................x..........x", "..................xxxxxxxxx..x", "..........................xxxx", ".............................."}
Returns: 19
{"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "...............................xx.................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................."}
Returns: 2
{"xx"}
Returns: 2
{"x","x"}
Returns: 2
{".....xxxx" }
Returns: 4
{"x.xxxx", "xxx..." }
Returns: 4
{".xx.", "..x.", "..x." }
Returns: 3
{"..xx", "....", "...." }
Returns: 2
{".xx" }
Returns: 2
{"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
Returns: 34
{"xxxxxxxx", ".......x" }
Returns: 8
{"xx.xxxxx", ".xxx...." }
Returns: 5
{"xxx", "..x", "..." }
Returns: 3
{"xx...xxxx", ".xx.xx...", "..xxx...." }
Returns: 4
{"......", "......", "......", "......", "......", "xx....", "......", "......" }
Returns: 2
{".", "x", "x", "." }
Returns: 2
{"xxx.xxxxx", "..xxx...." }
Returns: 5
{"xxxxx" }
Returns: 5
{"xx", ".x" }
Returns: 2
{"xxxxxxxxxxxx" }
Returns: 12
{".xxxx" }
Returns: 4
{"xx...xxxxxx", ".xxxxx....." }
Returns: 6
{"xxxxx", "x...." }
Returns: 5
{"xxxxx", "....." }
Returns: 5
{"..x", "..x" }
Returns: 2
{"xx" }
Returns: 2
{"...xx" }
Returns: 2
{"xxxx", "...." }
Returns: 4
{"x..", "x..", "x.." }
Returns: 3
{"..xxx" }
Returns: 3
{"xxxxxxxxxx" }
Returns: 10
{"xxxx" }
Returns: 4
{"..xxx", "..x.." }
Returns: 3
{"x.......", "xxxx....", "...x....", "xxxx....", "x.......", "x.......", "x.......", "x......." }
Returns: 5
{"xxxxxxx" }
Returns: 7
{"xxxxxxxxxxxxxxxxxxxxxxx" }
Returns: 23
{".xxxxx" }
Returns: 5
{".....", "xxxxx" }
Returns: 5
{"xx.....", ".x.....", ".xxxxxx", "......." }
Returns: 6
{"xxx", "x..", "x..", "x.." }
Returns: 4
{".", ".", "x", "x" }
Returns: 2
{"xx..xxxx", "x......x", "xxxxxxxx" }
Returns: 8
{"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
Returns: 50
{"xxxxxxxxx" }
Returns: 9
{"........xxxx" }
Returns: 4
{"........xxxx..." }
Returns: 4
{"...xxx" }
Returns: 3
{"..xxx", "....x", "xxxxx" }
Returns: 5
{"xxxxx...", "....xxxx", ".x.....x", ".xxxxxxx" }
Returns: 7
{"xxxxxx" }
Returns: 6
{"....xxxxx" }
Returns: 5
{"xxx", "x.x", "..x", "..x" }
Returns: 4
{"..xxxx", "..x..." }
Returns: 4
{"..xx.....xxxx", "...xx...xx...", "....xx.xx....", ".....xxx....." }
Returns: 4
{"xxxx", "....", "....", "...." }
Returns: 4
{"xxxx", "x...", "x..." }
Returns: 4
{"xxxxxxxxx", "x........", "x........" }
Returns: 9
{".....", "xxxxx", "....." }
Returns: 5
{"x", "x", "x" }
Returns: 3
{".x.", ".x.", ".x." }
Returns: 3
{"x.xxx.xxxx", "x.x.x.x..x", "xxx.xxx..x" }
Returns: 4
{"xx", ".x", "xx" }
Returns: 3
{"xxxxxx", "......", "......", "......" }
Returns: 6
{"....xxxxxx", "xxxxx....." }
Returns: 6
{"xx", ".." }
Returns: 2
{"x.", "x.", "x.", "x." }
Returns: 4
{"......", "..xx..", "......" }
Returns: 2
{"....xxx", "...xx.." }
Returns: 3
{"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................x", ".................................................x", ".............................................xxxxx" }
Returns: 5
{".x....", "xx....", "x.....", "x.....", "x....." }
Returns: 4
{"xxx" }
Returns: 3
{"................xxx" }
Returns: 3
{"xxx", "..x", "xxx", "x..", "xxx" }
Returns: 3
{"x.xxxx", "x.x...", "xxx..." }
Returns: 4
{"x.xxxx", "xxx...", "......" }
Returns: 4
{"x.", "x.", "x.", "x.", "x." }
Returns: 5
{"....xx" }
Returns: 2
{"xx.xxxx", ".xxx..." }
Returns: 4
{"...............xxx" }
Returns: 3
{"...xxx..............", "...x................", "...x................", "...x................" }
Returns: 4
{"xxxxxxxxx", "........." }
Returns: 9
{"x", "x", "x", "x", "x" }
Returns: 5
{"xx..", ".xxx" }
Returns: 3
{"xx..", ".x..", ".xx.", "..x.", "xxx.", "x...", "x..." }
Returns: 3
{"..x..", "..x..", "..x.." }
Returns: 3
{"...x................", "...x................", "...x................", "...x................" }
Returns: 4
{"..x", "..x", "x.x", "xxx" }
Returns: 4
{".xxxxx", ".....x", ".xxxxx" }
Returns: 5
{"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
Returns: 32
{"x.x", "x.x", "x.x", "xxx" }
Returns: 4