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

2 Lösungen Lösungen öffentlich
#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ß
#1
vote_ok
von dson (640 Punkte) - 02.05.2021 um 08:17 Uhr
Quellcode ausblenden C#-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2102739

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.