Python :: Aufgabe #331 :: Lösung #4

4 Lösungen Lösungen öffentlich
#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ß
#4
vote_ok
von AlexGroeg (2010 Punkte) - 11.04.2021 um 21:07 Uhr
Quellcode ausblenden Python-Code

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

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

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.