Python :: Aufgabe #357

1 Lösung Lösung öffentlich

String-Vergleich mit Rücktaste/Backspace

Anfänger - Python 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ß

Lösungen:

vote_ok
von eisheiliger (3750 Punkte) - 17.05.2021 um 15:27 Uhr
Quellcode ausblenden Python-Code

"""
#357: String-Vergleich mit Rücktaste/Backspace
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.
"""


def prf_back(sin):
    sot = ""
    for i in range(0, len(sin)):
        if sin[i] != "#":
            sot += sin[i]
        elif len(sot) > 0:
            sot = sot[:-1]
        else:
            continue
    return sot


def vgl_back(s1, s2):
    if prf_back(s1) == prf_back(s2):
        print("True")
    else:
        print("False")


vgl_back("ab#c", "ae#c")
vgl_back("ab##", "e#f#")
vgl_back("a#c", "ac#")
vgl_back("####", "###a#")
vgl_back("abcdefg", "abcder#fr#g")


1813412

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.