C# :: Aufgabe #380 :: Lösung #1
2 Lösungen

#380
Längster Substring (Teilzeichenfolge)
Anfänger - C#
von JKooP
- 10.04.2021 um 18:51 Uhr
Gegeben ist ein beliebig langer String (Zeichenkette) bestehend aus Kleinbuchstaben.
Ziel soll es sein, den längsten Substring (Teilzeichenfolge) herauszufinden,
der aus einem Buchstaben gebildet wird und aus mindestens 2 Zeichen besteht.
Schreibe eine Methode/Funktion, die sowohl die Länge als auch den Substrings selbst auf dem Bildschirm ausgibt.
Beispiele:
s1 = abcde
Länge: 0
Substring: "" -> keine Lösung, da kein Substring mit der Länge > 1
s2 = abccdec
Länge: 2
Substring: "cc"
s3 = "bbdddccaaa"
Länge: 3
Substring: "aaa"
Aufgabe 1:
Sind mehrere Substrings gleich lang, soll ein beliebiger ausgewählt werden.
Aufgabe 2:
Sind mehrere Substrings gleich lang, soll der des ersten Vorkommens ausgegeben werden.
zu s3:
Substring: "ddd"
Viel Spaß
Ziel soll es sein, den längsten Substring (Teilzeichenfolge) herauszufinden,
der aus einem Buchstaben gebildet wird und aus mindestens 2 Zeichen besteht.
Schreibe eine Methode/Funktion, die sowohl die Länge als auch den Substrings selbst auf dem Bildschirm ausgibt.
Beispiele:
s1 = abcde
Länge: 0
Substring: "" -> keine Lösung, da kein Substring mit der Länge > 1
s2 = abccdec
Länge: 2
Substring: "cc"
s3 = "bbdddccaaa"
Länge: 3
Substring: "aaa"
Aufgabe 1:
Sind mehrere Substrings gleich lang, soll ein beliebiger ausgewählt werden.
Aufgabe 2:
Sind mehrere Substrings gleich lang, soll der des ersten Vorkommens ausgegeben werden.
zu s3:
Substring: "ddd"
Viel Spaß
#1

von dson (640 Punkte)
- 02.05.2021 um 08:17 Uhr

using System; namespace laenger_substring_in_string { class Program { static void Main(string[] args) { string zeichenfolge = "bbdddccaaa"; string ausgabe = ""; string endausgabe = ""; int zaehler = 0; int pruefzaehler = 0; foreach (var item in zeichenfolge) { foreach (var item1 in zeichenfolge) { if (item == item1) { //Solange das aktuell gefragte Item matched wird es zur ausgabe hinzugefügt und der Zähler erhöht ausgabe = ausgabe + item; zaehler++; if (zaehler > pruefzaehler) { //Ist ein Höchstwert erreicht so wird dieser in den prüfzähler zwischengespeichert. pruefzaehler = zaehler; endausgabe = ausgabe; } } else if (item != item1) { //Matched das Item nicht mehr so wird die Ausgabe auf "" gestellt und der Zähler wieder auf 0 ausgabe = ""; zaehler = 0; } } } Console.WriteLine(endausgabe); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1