Python :: Aufgabe #331 :: Lösung #4
4 Lösungen
#331
Isomorphe Strings (Mustergleichheit)
Fortgeschrittener - Python
von JKooP
- 06.03.2021 um 17:43 Uhr
Als isomorph bezeichnet man zwei oder mehrere Strings (Texte),
die zwar inhaltlich unterschiedlich sind, aber dennoch das gleiche Muster aufweisen.
Achtung:
Gleiche Buchstaben bedeuten Musterwiederholung! ABAB ist nicht ABCD, aber CDCD.
Beispiele:
s1 = ABBA; s2 = OTTO => true
s1 = PAPER; s2 = TITLE => true
s1 = EGG; s2 = ADD => true
s1 = BADC; s2 = BABA => false
s1 = BBBAAABA; s2 = AAABBBBA => false
Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.
Viel Spaß
die zwar inhaltlich unterschiedlich sind, aber dennoch das gleiche Muster aufweisen.
Achtung:
Gleiche Buchstaben bedeuten Musterwiederholung! ABAB ist nicht ABCD, aber CDCD.
Beispiele:
s1 = ABBA; s2 = OTTO => true
s1 = PAPER; s2 = TITLE => true
s1 = EGG; s2 = ADD => true
s1 = BADC; s2 = BABA => false
s1 = BBBAAABA; s2 = AAABBBBA => false
Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.
Viel Spaß
#4
von AlexGroeg (2010 Punkte)
- 11.04.2021 um 21:07 Uhr
def in_zahlenmuster(s):
m = ''
muster = ''
for i in s:
if i not in m:
m += i
if i in m:
muster += str(m.index(i))
#print(muster)
return muster
def ist_isomorph(s1, s2):
if in_zahlenmuster(s1) == in_zahlenmuster(s2):
return True
return False
beispiele = [("ABBA", "OTTO"),
("PAPER", "TITLE"),
("EGG", "ADD"),
("BADC", "BABA"),
("BBBAAABA", "AAABBBBA ")]
for s1, s2 in beispiele:
print('s1 = {}; s2 = {} => {}'.format(s1, s2, ist_isomorph(s1, s2)))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
