Mustersuche
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 85 von 86.
Aufgabe
EinfachLies zwei Zeilen Eingabe: Die erste Zeile ist der Text, der durchsucht werden soll, und die zweite Zeile ist das zu findende Muster.
Zähle, wie oft das Muster im Text vorkommt, einschließlich überlappender Vorkommen, und gib die Anzahl aus.
Anforderungen:
- Lies den Text-String aus der ersten Zeile der Eingabe
- Lies den Muster-String aus der zweiten Zeile der Eingabe
- Iteriere durch den Text und prüfe an jeder Position auf das Muster
- Zähle alle Vorkommen, einschließlich überlappender Übereinstimmungen
- Gib die Gesamtzahl als einzelne Ganzzahl aus
Hinweis: Um einen Teilstring zu extrahieren, der bei Index i mit einer bestimmten Länge beginnt, kannst du String-Slicing mit Indizes verwenden. Wandle den String in ein Array von Zeichen um oder verwende Swifts String-Index-Manipulation, um zu prüfen, ob das Muster an jeder Position übereinstimmt.
Beispiel:
Wenn die Eingabe wie folgt aussieht:
ababa
abaDie Ausgabe sollte sein:
2Das Muster "aba" erscheint bei Index 0 und Index 2 in "ababa".
Probier es selbst
// Eingabe lesen
let text = readLine()!
let pattern = readLine()!
// TODO: Schreibe deinen Code unten
// Zähle, wie oft das Muster im Text vorkommt (einschließlich überlappender Vorkommen)
// Ergebnis ausgeben
print(count)Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungRückblick – Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypkonvertierungWiederholung – Bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgumentbezeichnungenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte13Über Sequenzen iterieren
Über Elemente iterierenDie Enumerate-MethodeÜber Strings iterieren Teil 1Über Strings iterieren Teil 22Variablen
let vs. varTypannotationenZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechner zum Teilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Arrays – Fortgeschritten
Array-Slicing Teil 1Array-Slicing Teil 2SequenzoperatorenDie Contains-Methode3Optionals
Was sind Optionals?Entpacken mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Entpacken6Entscheidungen treffen
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Bereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueZusammenfassung – FakultätBereiche in SchleifenVerschachtelte SchleifeZusammenfassung – Dynamische EingabeÜbe selbstständig: Swift-Playground