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

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ß
#1
vote_ok
von eisheiliger (3750 Punkte) - 31.03.2021 um 20:39 Uhr
Quellcode ausblenden Python-Code

"""
#331: Isomorphe Strings (Mustergleichheit)
Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.
"""


def cast(cast_e):
    cast_n = ''
    erg = ""
    for i in cast_e:
        if i not in cast_n:
            cast_n += i
    for i in cast_e:
        if i in cast_n:
            erg += str(cast_n.index(i))
    return erg


def prf_cast(ein1, ein2):
    if cast(ein1) == cast(ein2):
        print(ein1, ein2, "haben das gleiche Muster")
    else:
        print("Kein gleiches Muster für", ein1, ein2)


def main():
    prf_cast("ABBA", "OTTO")
    prf_cast("PAPER", "TITLE")
    prf_cast("EGG", "ADD")
    prf_cast("BADC", "BABA")
    prf_cast("BBBAAABA", "AAABBBBA ")


if __name__ == '__main__':
    main()


Kommentare:

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

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

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.