Python :: Aufgabe #357 :: Lösung #1

1 Lösung Lösung öffentlich
#357

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ß
#1
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")


Kommentare:

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

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

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.