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

4 Lösungen Lösungen öffentlich
#348

Noch mehr Mustervergleiche (word pattern)

Fortgeschrittener - Python von JKooP - 17.04.2021 um 19:10 Uhr
Gegeben ist ein Text (String), der ausschließlich aus kleingeschriebenen Wörtern besteht,
welche durch Leerzeichen getrennt sind.
Weiterhin gibt es eine Sequenz (String) mit der der Text verglichen werden soll (Mustergleichheit).

Beispiele:
t = "hund katze katze hund"
s = "abba"
Lösung: wahr => a = hund; b = katze; b = katze; a = hund

t = "hund katze maus hund"
s = "abba"
Lösung: falsch => a = hund; b = katze; b = maus; a = hund (b ist unterschiedlich)

t = "hund hund hund hund"
s = "aaa"
Lösung: falsch => Anzahl stimmt nicht überein

Schreibe eine Methode/Funktion, mit der man die Mustergleichheit überprüfen kann.
Als fakultative Herausforderung: ohne die implementierten Funktionen wie etwa Dictionary, map, set, zip, etc.

Viel Spaß
#1
vote_ok
von eisheiliger (3750 Punkte) - 19.04.2021 um 20:03 Uhr
Quellcode ausblenden Python-Code

"""
#348: Noch mehr Mustervergleiche (word pattern)
Gegeben ist ein Text (String), der ausschließlich aus kleingeschriebenen Wörtern besteht, welche durch Leerzeichen
getrennt sind. Weiterhin gibt es eine Sequenz (String) mit der der Text verglichen werden soll (Mustergleichheit).
"""


def prf_wrdpat(t, s):
    u = []
    erg = True

    for i in range(0, len(s)):
        u.append([s[i], t[i]])
    u = (sorted(u))

    for i in range(0, len(s) - 1):
        if u[i][0] == u[i + 1][0] and u[i][1] != u[i + 1][1]:
            erg = False
    print(s, t, "Ergebnis =", erg)


def prf_ein(t1, s1):
    t1 = t1.split(" ")
    s1 = list(s1)
    if len(t1) == len(s1):
        prf_wrdpat(t1, s1)
    else:
        print("Anzahl stimmt nicht überein", t1, s1)


def main():
    prf_ein("hund katze katze hund", "abba")
    prf_ein("hund katze maus hund", "abba")
    prf_ein("hund hund hund hund", "aaa")
    prf_ein("hund katze katze hund katze", "abbab")


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
2110303

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.