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