Annettuna on n \times m -ruudukko, joka esittää labyrinttiä. Tehtäväsi on laskea lyhimmän reitin pituus ruudusta A ruutuun B. Jokainen ruutu on joko lattiaa (.) tai seinää (#), ja jokainen reunalla oleva ruutu on seinää.
Voit olettaa, että 1 \le n, m \le 20. Jos mitään reittiä ei ole olemassa, palauta -1.
Python
Toteuta tiedostoon labyrinth.py funktio count, joka kertoo lyhimmän reitin pituuden.
def count(r):
# TODO
if __name__ == "__main__":
r = ["########",
"#.A....#",
"#.#.##.#",
"#.##...#",
"#...B#.#",
"########"]
print(count(r)) # 7
Java
Toteuta tiedostoon Labyrinth.java metodi count, joka kertoo lyhimmän reitin pituuden.
public class Labyrinth {
public int count(String[] r) {
// TODO
}
public static void main(String[] args) {
Labyrinth l = new Labyrinth();
String[] r = {"########",
"#.A....#",
"#.#.##.#",
"#.##...#",
"#...B#.#",
"########"};
System.out.println(l.count(r)); // 7
}
}
