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