Rasterpfade
Teil des Abschnitts Logik und Ablaufsteuerung der R-Journey von Coddy. Lektion 64 von 64.
Aufgabe
SchwerVervollständige count_paths(grid). grid ist eine Matrix aus 0 (offene Zellen) und 1 (Wänden). Ein Pfad beginnt in der Zelle oben links, endet in der Zelle unten rechts, bewegt sich nur nach rechts oder unten und betritt niemals eine Wand. Gib zwei Zeilen zurück: Paths: mit der Anzahl der verschiedenen Pfade und Steps: mit der Anzahl der Bewegungen in einem beliebigen Pfad (alle Pfade haben dieselbe Länge) oder Steps: none, wenn es keinen Pfad gibt.
Erstelle eine Matrix ways derselben Größe, in der jede Zelle die Anzahl der Pfade enthält, die sie erreichen: Eine offene Zelle erhält die Summe der Zelle darüber und der Zelle links von ihr, eine Wand erhält 0.
Der bereitgestellte Code liest das Raster aus einer Zeile ein: Zeilen werden durch ; und die Werte einer Zeile durch , getrennt. Er gibt jede zurückgegebene Zeile aus.
Probier es selbst
count_paths <- function(grid) {
# Schreibe deinen Code hier
c("Paths: 0", "Steps: none")
}
# Mitgelieferter Ein-/Ausgabecode: belasse ihn unverändert
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")
Alle Lektionen in Logik und Ablaufsteuerung
1Strings im Detail
Teilstrings mit substr()Formatierung mit sprintf()Aufteilen und VerbindenStrings durchsuchenText ersetzenWiederholung – Benutzernamen-Generator4Matrizen
Matrizen erstellenMatrizen indizierenZusammenfassungen von Zeilen und SpaltenMatrizenarithmetikRückblick – Sitzplan10Fortgeschrittener Kontrollfluss
Die switch()-FunktionVektorisierter ifelse()repeat und breakRekursive FunktionenRückblick – Notenklassifizierung2Schlüssel-Wert-Suchen
Benannte Vektor-SuchenSchlüssel prüfenSchlüssel hinzufügen und entfernenNamen durchlaufenRückblick – Aktienübersicht5Projekt – Notenbuch
Schüler hinzufügenNoten eintragen3Mengen und Zählen
Eindeutige WerteMengenoperationenZugehörigkeitstestsZählen mit table()Rückblick – Gäste einer Veranstaltung6Funktionen als Werte
Anonyme FunktionenFunktionen übergebenFunktionen zurückgebenClosures mit ZustandRückblick – Rabattregeln9Datenrahmen
Datenrahmen erstellenSpalten und ZeilenZeilen filternHinzufügen und SortierenZusammenfassung – Verkaufsbericht12Projekt – Ausgaben-Tracker
Ausgaben erfassenGesamtausgabenÜbe selbstständig: Online-R-Compiler