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