Problem Statement
Definition
- Class:
- EscapeTheJail
- Method:
- findExit
- Parameters:
- String[]
- Returns:
- double
- Method signature:
- double findExit(String[] jail)
- (be sure your method is public)
Constraints
- jail will contain between 1 and 15 elements, inclusive.
- Each element of jail will contain between 1 and 15 characters, inclusive.
- All elements in jail will contain the same number of characters.
- Each character in each element of jail will be '.', '#', '$' or '@'.
- jail will contain exactly one '@' character.
- jail will contain at least one '$' character.
Examples
{"@$"}
Returns: 1.0
You have only one possible move, and it leads you to the exit. So, the answer is 1.
{"$.", ".@"}
Returns: 4.0
{"@..$"}
Returns: 9.0
{"@#", "#$"}
Returns: -1.0
{"@........$"}
Returns: 81.0
{"..$....","....#..",".#.##$.",".....#.","..#..#.",".#.....","....@..",".###..."}
Returns: 130.8334268728003
{"..$....","....#..",".#.##$.",".....#.","..#..#.",".#.....","....@.."}
Returns: 109.11017808318881
{".#...#.","....###",".$.....","..#.##.","#.$@#.#","....##."}
Returns: 9.544569041717937
{"#...#","...#.",".....",".$##.",".$..@","...##"}
Returns: 25.75234317520232
{".....#.","##.####","#...#..","####..#",".....##",".....#@","#.##.$."}
Returns: 4.0
{".....#.","##.####","#...#..","####..#",".....##",".....#@","#.##.$."}
Returns: 4.0
{"$.#.......","..$..##.#.","......#@.#","..#.$##...",".###.###.#","..##..##.#","#.#...#..."}
Returns: 200.0684584980229
{"##.#...#..","....##....","#.#...##.#","#.#..##.##",".####.#.##","...#...#..",".#.#......","###.#####.","##@.##....","##.$#..##."}
Returns: 5.0
{"##$#..$$..","....###.@.","###..###.#","####.#####",".####.#.##","..##.#$##.",".#.#.#..#.","###.######","##.###.###"}
Returns: 10.133333333333333
{"#..#..#..",".##.....@","....##...","....#.#..",".....$...",".#.......","..#......",".#.......",".#..##...","..#......"}
Returns: 151.03282732239734
{"...$......","..........","...$.....$","$.........","......$...",".....$....",".......$..",".........@","..........",".........."}
Returns: 30.45012400742604
{"@.#..#....","##..#....#","##.....#..","#.##......",".##..#.#..","##..#....#","..#...#..#","#......#.#","..$.......","#.#......."}
Returns: -1.0
{"###.##..##","$..@##..#.",".##.##..##","...#.....#","..####...#","##.#.....#","##..##.###","##.##.....","#.....#...","#.##....##"}
Returns: 20.99999999999999
{".#.###.#..","..........","..$#$.###.","#.#..#...#","..#.#.#..#","##..###...","#..#.#.#..","##.#..#@..","#..##.#..#","#.......#."}
Returns: 956.4999999999698
{"..#.#####.","#####..###","#.#######.","###.#..###","..###$##.#","..#######.","#.########","#########.","#####.#@#."}
Returns: -1.0
{".##.....#","#$...##..","......##.",".#.......",".........","....#.#..",".....#.#.","....#.#..","..#.@....","........."}
Returns: 332.4079666605024
{"..........",".@........",".......$..","..........","..........","....$.....","..$.......","...$......","$.$....$..",".........."}
Returns: 56.71594851381519
{".#...#.###",".###.#.##.",".#.##....#","..#.##...#","#.$.#####.",".#..####.#","#..##..@.#","##.#....##","##........",".#.#.#...#"}
Returns: 387.40572937829705
{"...#..###",".##..#.#.",".$.$#.#.#","##.##...#","$#....$@$","#....#.#.","...#$$#..",".#$##.#.#","#$....#.#","##$##...."}
Returns: 3.2618943571601977
{"###.###...","#......#..","#.#..#####","...##@..#.","####...$#.",".#....#.##","#.........","#.###..###","#...#####.",".#.##.#..."}
Returns: 40.7842003372259
{"##..###$.#","..#.##.###",".####..###",".######..#","#...##.#..","###@.###.#","##.##.#.#.",".#..##.###","##.###.##."}
Returns: -1.0
{".$..$$$.$.","....$$..$$","$......$..","$...$..$$.",".....$...$",".$....$$.$","$.$$.$$$$$","$$....$...","..$@..$$..","$.$$.$..$."}
Returns: 2.8174232602386042
{"$$$$$$$.$$","..$.$$..$$","$$$$$$.$$$","$$$.$$$@$$",".$..$$$$$$","$$.$$$$$$$","$$$$$$$.$$","$$..$$$$$$","$$$$$$$$$$","$$$$$$..$$"}
Returns: 1.0
{"#..#..#",".##....",".$##.#.","##..#.#","###.#..","....@..","##.#..#"}
Returns: -1.0
{".##......#","...@..#..$","..#.....#.","..#.#.##..",".#.#.##.#.","###...##..",".##.###..."}
Returns: 211.9717261904743
{"$@$##$$###"}
Returns: 1.0
{"#","#","#","#","#",".","$",".",".","@"}
Returns: 9.0
{"..","..",".@","..","..","##","..","#$","..",".."}
Returns: -1.0
{".#...##@..","........$#"}
Returns: 17.999999999999957
{"#.....#.#.","..@###$...","#.#..##...","...###...#","..#.#.....","..#.#..#..","###.####.#","#.#..##.##",".####.....","#.##..##.."}
Returns: -1.0
{"#..##..##$","#.#.##@.#.","....####..","##..#.###.",".#.#.###..",".###..###.","#####.#.#.","####......","..##....#.","..#.#.#.#."}
Returns: -1.0
{".#.###.#..","..........","..$#$.###.","#.#..#...#","..#.#.#..#","##..###...","#..#.#.#.@","##.#..#$..","#..##.#..#","#.......#."}
Returns: 50.36075268817196
{".####.#..#",".######..#","#.#..#.#.#","##.#..#..#","#..@######","...#.....#","#.#.....##",".#.$#...##","####.###.#"}
Returns: -1.0
{"....##...",".$.....$.",".....#...","$..$$$...","..###.#$.","..$.#...#","..#.#.#..","$.#......","#.#....$$","...#.@..#"}
Returns: 20.951614980453304
{"..........",".$..$.....",".......$$.",".@........","..........","..........","..........",".......$..","....$$....",".........."}
Returns: 31.509908785243812
{"#.$#####..",".#..#.##..","#..#..#.#@","..#..###..","##.##.#..#","......#...",".#.#...#..",".........#",".#.#.##.#.","....##...#"}
Returns: -1.0
{"$#####$#.","##..#$..#","#@$#$$$..","$$#.#.#..","#....##.$","##$$...##","..$..$.$#","#$$#..#$.","#.#$.$#..","....$#..#"}
Returns: 1.0
{"###.###...","#......#..","#.#..#####","...##@..#.","####...$#.",".#....#.##","#.........","#.###..###","#...#####.",".#.##.#..."}
Returns: 40.7842003372259
{"#$$#@.$$$#","##$$.#.$#$","##.#$.####","$.####$.#$","#$$#.##.#$","##$$$###$#","$$$#$#..$.","##$##.####","####..#$##"}
Returns: 3.4285714285714284
{"..#......","#........","###......","....#...#",".#.....##","#.###....",".#.......",".....#...","@...#.#..","#.#.#.$.."}
Returns: 653.5889405620787
{"......$.$.","..$.......","..$.......","$.........","..$...@..$",".........$",".....$$...","..........","..........","..$......."}
Returns: 16.475982592477454
{".....#.","##.####","#...#..","####..#",".....##",".....#@","#.##.$."}
Returns: 4.0
{"@.........","..........","..........","..........","..........","..........","..........","..........","..........",".........$"}
Returns: 542.1005216813751
{"..........","..........","......@...","..........","..........","..........",".$........","..........","..........",".........."}
Returns: 262.5270845919832
{"..........","..........","..........","..........","..........","..........","..........",".........@",".........$",".........."}
Returns: 143.45236102932054
{"..........","@.........","..........","..........","..........","..........","..........","..........","..........",".........$"}
Returns: 541.1005216813702
{"..........","..........","..........","..........","..........","..........","..........","....@.....","..........","$........."}
Returns: 432.21887082128563
{"..........","..........","........@.","..........","..........","..$.......","..........","..........","..........",".........."}
Returns: 222.71550647859513
{"..........","..........",".@........","..........","..........","..........","..........","..........","$.........",".........."}
Returns: 377.1278552603537
{"..........","..........","..........","..........","..........","..........","..........","..........","...@......","........$."}
Returns: 359.3032035553276
{".....$....","..........","........@.","..........","....$.....",".....$....","$.........","..........","..........",".........."}
Returns: 56.754721096906565
{"..$.......","..........",".$........","..........","........@.","..........","..........","....$....$","$..$......","..$......."}
Returns: 59.268487169174875
{"#..#..#...",".........@","..#.......","..#.#.....","$........#",".#..#.....","#......#.#","....##...#","#.....$..#",".#..#....."}
Returns: 170.60521299081128
{".....#$#..","........$.","#$.#......",".....#...#",".#....$..@","..........",".....#....",".....#...#","...#..#...","#....#...."}
Returns: 43.99864177785296
{"....#.#.#.",".#.....#.$","......@.#.",".........#","...#......","#$#.#....#","#.....#..#","......#.#.",".........#",".........."}
Returns: 268.39920014038364
{"..$....#..","....$...#.","...$#....#","......#..#","..........","..#.....@$","....#.....","......$..#","..#.......","........#."}
Returns: 18.659186954690377
{".....##...","..#.......","..........","..#.#...#.","...$..#.#.","......#...","..........","..........","$....$....",".@......#."}
Returns: 19.796741148893222
{"......#...",".......#..","........$.","..........","..$#.$...@","#..$.#...$","..........","..$#......",".#.......$",".........."}
Returns: 9.328833398505584
{"....##....","...$...@..","....#..$..",".........$","...#......","#......$..","...$......","...$......","......$...",".........."}
Returns: 11.864333921499494
{ "@.........", "#########.", "..........", ".#########", "..........", "#########.", "..........", ".#########", "..........", "#########$" }
Returns: 2915.999999999952
{"@..............",".##############","...............","##############.","...............",".##############","...............","##############.","...............",".##############","...............","##############.","...............",".##############","..............$"}
Returns: 15679.99999999979
{"$..............",".##############","...............","##############.","...............",".##############",".......@.......","##############.","...............",".##############","...............","##############.","...............",".##############","..............$"}
Returns: 2910.999999999966
{"$..............",".##############","...............","##############.","...............",".##############","..@............","##############.","...............",".##############","...............","##############.","...............",".##############","..............$"}
Returns: 2735.9999999999745
{"@..............",".##############","...............","##############.","...............",".##############","...............","##############.","...............",".##############","...............","##############.","...............",".##############",".............#$"}
Returns: -1.0
{"....@..........",".............$.","......$........","...............",".$.............",".............$.","....$..........",".......$$......","...............","...............",".$.............","...$...........",".........$.....","..........$....","$...........$.."}
Returns: 38.07037723734559
{"...............","...............","........$......","............$..","...............",".$.$...........","......$........","...............","$..............",".........$.....","...............","...............","...............",".............@.","........$......"}
Returns: 85.00876730515527
{"...............","...............","...............",".........@.....","...............","...............","...............","..$............","...............","........$..$...","...............","...............","...............","...............","$.....$...$...."}
Returns: 174.9205072427839
{"...............","...$...........","...............","....@..........","..$...........$","..$............","..$$...........","...............","...............","...............","...............","...............","...............","...............","...........$..."}
Returns: 54.82969652806735
{"...............","...............","...............","...............","..............$","...............","...............","..........$....","...............","......$.......$",".....$..$......","...............","...............","...............","@.............$"}
Returns: 127.16320625877697
{".......$.....$.","..............$","..............$","...............","...............","...............","...............","...............","...............","...........@...","...............","...$...........","...............","...............","..............."}
Returns: 229.87237066998227
{"....@..........","...............","...............","...............","...............","$..............","...............","...............","...............","...............",".............$.",".............$.",".............$.","...............","..............."}
Returns: 269.79379316926344
{".##.....#......","#...#.....#.#..","...#...........","............$##","........@##.$..",".$.....#...#...",".#....##..#....",".......#..#$.#.","..##...#.....#.",".............#.",".......#..$....",".####..#..$.#..","$....#..#...#..","##......#...#..","...#....$...#.#"}
Returns: 100.52759116244174
{"##.#......#$...","#..##.....#....","...##.#..#.....",".....@.$...#..#","...#...##.#....","....#...#.#...#","....#..........","..#...........#","..##.#.......#.",".#...$#......$#","...#.........##","...#....#......",".##............","....##.#..$..#.","..........#..#."}
Returns: 101.99560497653198
{".......##......",".#.#.....#....#","......#........","........##.@...",".#..........#..",".....##....$...",".....#...$$#...","#..#.###..#..##","...##..#.....#.",".$..##....##.#.",".....$......#.#","...$...........","#.....#....###.","....#..$.#.....","#....$.$..#.#.."}
Returns: 79.32213030140709
{"......#.....##.",".....$.........",".#......#..#...",".....##$..@#...",".........#.....","#...$.#.....###",".#.#.##.#.....#","#..#..#........","......#....#..#",".....##..#.....","..........#..#.","#.....$....###.","##..#...##...#.","......#.....###","....#.........."}
Returns: 120.3379742258571
{"..##..#..##..##","#....#...@.#...","##...........#.","....##..#.#..#.",".#.##.#....##..","...#......###..",".......#.....#.",".....#.#......#",".#$#...........",".....##.......#","....#.$.#......","#....$...##....","#.##.$..#...#..","#.....###....#$","......#...$.#.."}
Returns: 358.87258648867953
{".....#........#",".#....#......$.","...#...#......#","....#....$#..#.","...#.....#.....","#...#....#.....","#.##.#..#......",".#..#.#........","...#...#...#...",".###..##.#.@.$.","$.#..#.........","###......##.#..",".....##.....#.#","..........#.#$.","....#....#...#."}
Returns: 137.20112892428736
{"$..#...........","..#...####.#...",".....#.........",".............#.","#.#....$....##.","##......#....#.","......#$.......","#.....#........","##...#.......#.","..#....##......","#..###.#.......","......#....@...","....$.......#..","#.#..........#.","$.$#.....#.#..#"}
Returns: 180.31119019476847
{"..#....#.....$.","........#$#....",".....#........#",".......#...#...",".#........##...","..#............","...#..#.......#",".#...#...#.#...",".#........#....","$....#..#.#..##","...###.#.#.....","...##.......#..","#.##...#.......","........##.##..","..#..#.#.@....."}
Returns: 492.9132760578129
{"$..............","...............","...............","...............","...............","...............","...............","...............","...............","...............","...............","...............","...............","...............","..............@"}
Returns: 1481.1247777074964
{"...............","...............","...............","...............","...............","...............","...............","........$......",".........@.....","...............","...............","...............","...............","...............","..............."}
Returns: 261.3340054150918
{"..............@", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "..............$"}
Returns: 15875.999999999409
{"$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$@$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$"}
Returns: 1.0
{"###############","###############","##@############","###############","###############","###############","###############","###############","###############","###############","###############","###############","###############","##########$####","###############"}
Returns: -1.0
{"###############","###############","##@$###########","###############","###############","###############","###############","###############","###############","###############","###############","###############","###############","##########$####","###############"}
Returns: 1.0
{"##....#....#", ".@..........", "..#.#..##...", "..........#.", "#.#.##......", "........#..#", "##.##..#...#", "...........$" }
Returns: 625.3353944106268
{"@#...#.........", ".#.#.#.#.#####.", ".#.#.#.#.#.....", ".#.#.#.#..#..##", ".#.#.#..#..#...", ".#.#..#..#.###.", ".#..#.#..#.#...", "..#.#..#.#.#.##", ".#...#.#.#.#...", "..#..#.#.#..##.", ".#..#..#..#.#..", "..#.#..#.#..#.#", ".#...#.#.#.#...", ".###.#.#.#.#.#.", ".....#...#...#$" }
Returns: 9833.54271356619
{"...............", "...............", "...@...........", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...........$...", "...............", "..............." }
Returns: 756.4572038411387
{"..............$", "...............", "..#............", "...............", "........#......", "...............", ".....#.........", ".......@.......", "...............", "...............", "...#...........", "........#......", "...............", "...............", "$.............." }
Returns: 587.0693340648039
{"@..............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "$.............." }
Returns: 15875.999999999409
{"@#...#...#...#$", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.", "...#...#...#..." }
Returns: 15875.999999999409
{"$..............", "############...", ".............#.", ".#.###########.", "............#..", "###########...#", "............#..", "..#############", "...............", "#########.#.##.", "...............", "....###########", "...............", "############.#.", "@............#." }
Returns: 9528.610688882774
{"@..............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "##########.####", "$.............." }
Returns: 9701.451867289377
{".$............$", "..............$", "...............", "...............", "...............", "...............", ".......@.......", "...............", "...............", "...............", "...............", "...............", "...............", "$..............", "$............$." }
Returns: 215.2550427873787
{"$..............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "@.............." }
Returns: 15875.999999999409
{"@..............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "..............$" }
Returns: 12543.999999999749
{"$..............", "############$#.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "...............", "##############.", "@.............." }
Returns: 11861.067961165503
{"..............$", ".##############", "...............", "##############.", "...............", ".##.###########", "...............", "########.#####.", "...............", ".##############", "...............", "##############.", "...............", ".##############", "..............@" }
Returns: 13698.399999999043
{"..........###.$", "..####.....####", "............##.", ".......####....", "..##...........", "..##.....####..", "...............", "........@..##..", "...............", "..#############", "...............", "#####..........", ".$##...........", "..#..#########.", "..#..........$." }
Returns: 4228.933568898264
{"@..............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "..............$" }
Returns: 1481.1247777074964