Python :: Aufgabe #357
1 Lösung
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ß
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:
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")