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 } }