C# :: Aufgabe #397 :: Lösung #4

4 Lösungen Lösungen öffentlich
#397

String-Vergleich mit Rücktaste/Backspace

Anfänger - C# von JKooP - 12.05.2021 um 15:38 Uhr
Gegeben sind zwei Strings (Texte) bestehend aus einer Anzahl (<100) Kleinbuchstaben (a-z) und
Backspaces (Rücktastenzeichen) welche hier als Hashtag/Raute (#) dargestellt werden.
Dabei können die Strings unterschiedlicher Länge sein.
Ziel soll es sein zu überprüfen, ob die beiden Strings (s1, s2) identisch sind.

Beispiele:

s1 = ab#c
s2 = ae#c
Lösung: true ("ac" == "ac"), denn Backspace löscht in s1 das b und in s2 das e

s1 = ab##
s2 = e#f#
Lösung: true ("" == ""), denn Backspace löscht in s1 zuerst das b und dann das a und in s2 zuerst das e und dann das f

s1 = a#c
s2 = ac#
Lösung: false ("c" != "a") , denn Backspace löscht in s1 das a und in s2 das c

s1 = ####
s2 = ###a#
Lösung: true

s1 = abcdefg
s2 = abcder#fr#g
Lösung: true

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

Viel Spaß
#4
vote_ok
von ionut (80 Punkte) - 12.07.2021 um 23:08 Uhr
Quellcode ausblenden C#-Code
//s1 durchgehen und die richtigebuchstaben in s1Verarbeitet schreiben. 
            for (int i = 0; i < s1.Length; i++)
            {
                if (s1[0] == ' ')
                {
                    s1 = s1.Remove(i, 1);
                    i = 0;
                }
                else if(s1[i] == ' ')
                {
                    s1 = s1.Remove(i, 1);
                    s1 = s1.Remove(i - 1, 1);

                    i = 0;
                }

                
            }
            //s2 durchgehen und die richtigebuchstaben in s2Verarbeitet schreiben.
            for (int i = 0; i < s2.Length; i++)
            {
                if (s2[0] == ' ')
                {
                    s2 = s2.Remove(i, 1);
                    i = 0;
                }
                else if( s2[i] == ' ')
                {
                    s2 = s2.Remove(i, 1);
                    s2 = s2.Remove(i - 1, 1);
                    i = 0;
                }
            }

            //überprüfen ob beiden überarbeiteten Strings gleich sind.

            if (s1 == s2)
            {
                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Die Texte sind gleich!");
            }
            else
            {
                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Die Texte sind nicht gleich :(!");
            }

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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

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.