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