Ścieżki na siatce
Część sekcji Logika i przepływ sterowania ścieżki R w Coddy. Lekcja 64 z 64.
Wyzwanie
TrudnyUzupełnij count_paths(grid). grid to macierz zawierająca zera (wolne pola) i jedynki (ściany). Ścieżka zaczyna się w lewym górnym polu, kończy w prawym dolnym polu, prowadzi tylko w prawo lub w dół i nigdy nie przechodzi przez ścianę. Zwróć dwa wiersze: Paths: z liczbą różnych ścieżek oraz Steps: z liczbą ruchów na dowolnej ścieżce (wszystkie ścieżki mają tę samą długość) albo Steps: none, jeśli nie ma żadnej ścieżki.
Utwórz macierz ways o tym samym rozmiarze, w której każda komórka zawiera liczbę ścieżek, które do niej prowadzą: wolna komórka otrzymuje sumę wartości komórki powyżej i komórki po lewej, a ściana otrzymuje 0.
Dostarczony kod wczytuje siatkę z jednego wiersza: wiersze są oddzielone znakiem ;, a wartości w wierszu znakiem ,. Wyświetla każdy zwrócony wiersz.
Spróbuj swoich sił
count_paths <- function(grid) {
# Wpisz tutaj swój kod
c("Paths: 0", "Steps: none")
}
# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
input <- suppressWarnings(readLines(file("stdin")))
rows <- strsplit(input[1], ";")[[1]]
grid <- matrix(as.numeric(unlist(strsplit(rows, ","))), nrow = length(rows), byrow = TRUE)
cat(count_paths(grid), sep = "\n")
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Łańcuchy znaków w szczegółach
Podciągi za pomocą substr()Formatowanie za pomocą sprintf()Dzielenie i łączenieWyszukiwanie w łańcuchach znakówZastępowanie tekstuPowtórka – kreator nazwy użytkownika4Macierze
Tworzenie macierzyIndeksowanie macierzyPodsumowania wierszy i kolumnDziałania na macierzachPowtórka – plan miejsc10Zaawansowane sterowanie przepływem
Funkcja switch()Wektorowe ifelse()repeat i breakFunkcje rekurencyjnePodsumowanie — klasyfikator ocen2Wyszukiwanie wartości po kluczach
Wyszukiwanie nazwanych elementów wektoraSprawdzanie kluczyDodawanie i usuwanie kluczyIterowanie po nazwachPowtórzenie — giełda5Projekt — dziennik ocen
Dodawanie uczniówZapisywanie ocen3Zbiory i zliczanie
Unikalne wartościOperacje na zbiorachTesty przynależnościZliczanie za pomocą table()Podsumowanie — goście wydarzenia6Funkcje jako wartości
Funkcje anonimowePrzekazywanie funkcjiZwracanie funkcjiDomknięcia ze stanemPowtórka — reguły rabatowe9Ramki danych
Tworzenie ramek danychKolumny i wierszeFiltrowanie wierszyDodawanie i sortowaniePodsumowanie – raport sprzedaży12Projekt – śledzenie wydatków
Rejestrowanie wydatkówŁączne wydatkiPoćwicz samodzielnie: Kompilator R online