C# :: Aufgabe #378 :: Lösung #1
2 Lösungen
#378
Figur zurück zum Ausgangspunkt
Anfänger - C#
von JKooP
- 02.04.2021 um 08:45 Uhr
Eine Figur bewegt sich auf einer 2D- Spielfläche (Koordinatensysteme). Dabei startet sie an der Position (0, 0).
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
#1
von hollst (13980 Punkte)
- 06.04.2021 um 19:33 Uhr
using static System.Console;
string[] test = new string[] { "UD", "LURD", "LLDD", "LLUUURDDRD", "LDRRLRUULR" };
for (var i = 0; i < test.Length; i++)
WriteLine($"{test[i]}: {test[i].Solution()}");
ReadKey();
static class Extension {
public static bool Solution(this string s) {
int left = 0, down = 0;
for (var i = 0; i < s.Length; i++) {
if (s[i] == 'L') left++; else
if (s[i] == 'R') left--; else
if (s[i] == 'D') down++; else
if (s[i] == 'U') down--;
}
return (left == 0) && (down == 0);
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
