C# :: Aufgabe #396

3 Lösungen Lösungen öffentlich

Reihenfolgeabhängige Teilsequenz(en)

Anfänger - C# von JKooP - 10.05.2021 um 19:10 Uhr
Gegeben ist ein String (Text) der ausschließlich aus Kleinbuchstaben besteht.
Es soll überprüft werden, ob eine Sequenz - auch in Teilen - reihenfolgeabhängig im gegebenen String vorhanden ist.
Eine Teilsequenz kann auch aus nur einem einzelnen Zeichen bestehen.
Die Sequenz muss immer in der Gesamtheit überprüft werden (nicht nur Teile der Sequenz).

Beispiele:
Text = "abcdefg"
Sequenz ="ace"
Lösung: true; "abcdefg"

Text = "abcdefg"
Sequenz = "aec"
Lösung: false; alle Zeichen vorhanden, aber nicht in der richtigen Reihenfolge

Text = "abcdefg"
Sequenz = "atg"
Lösung: false; "t" nicht vorhanden

Schreibe eine Funktion/Methode, die für obige Aufgabenstellung als Ergebnis true/false liefert.

Viel Spaß

Lösungen:

vote_ok
von manoloForead (390 Punkte) - 24.05.2021 um 22:03 Uhr
Quellcode ausblenden C#-Code

private bool FindSubstring(string baseString, string subString)
        {
            // Für jedes Zeichen in der kurzen Zeichenfolge...
            foreach (char c in subString)
            {
                // Die Position des Zeichens in der langen Folge ermitteln
                int position = baseString.IndexOf(c);
                
                // Wenn vorhanden, dann die lange Folge am Anfang bis einschließlich des gefundenen Zeichens entfernen
                if (position >= 0)
                {
                    baseString = baseString.Substring(position);
                }
                // Wenn nicht gefunden, "False" zurückgeben
                else
                {
                    return false;
                }
            }
    
            // Wenn alle Zeichen gefunden werden, "True" zurückgeben
            return true;
        }

1x
vote_ok
von Heftog (300 Punkte) - 06.06.2021 um 01:00 Uhr
Quellcode ausblenden C#-Code
 private static bool HandleString(string input, string sequenz)
        {
            int lastFoundIndex = 0;
            foreach(char c in sequenz)
            {
                int index = input.IndexOf(c, lastFoundIndex);
                if (index < 0) { return false;}
                lastFoundIndex = index;
            }
            return true;           
        }
vote_ok
von ionut (80 Punkte) - 13.07.2021 um 00:51 Uhr
Quellcode ausblenden C#-Code
static void Main(string[] args)
        {
            Teilsequenz("abcdefg", "atg");
            Console.ReadLine();
        }

        static void Teilsequenz(string text, string sequenz)
        {
            // Deklaration von Variabeln
            string echteSequenz = "";
            //text string durchgehen
            for (int i = 0; i < text.Length; i++)
            {
                for (int j = 0; j < sequenz.Length; j++)
                {
                    if (text[i] == sequenz[j])
                    {
                        echteSequenz += text[i];
                    }
                }
            }

            if (sequenz == echteSequenz)
            {
                Console.WriteLine("true");
            }
            else
            {
                Console.WriteLine("false");
            }
1815026

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.