Python :: Aufgabe #305 :: Lösung #4
4 Lösungen
#305
Aufgabe 4 - Versteckte Palindrome.
Fortgeschrittener - Python
von Yali23
- 09.11.2020 um 17:19 Uhr
Irgendjemand hat Strings in Listen konvertiert und dabei sind leider auch noch an zufälligen Stellen Zahlen (int und float) zwischen die Zeichen des zugrundeliegenden Strings gerutscht. Aus dem String Python ist also beispielsweise die Liste
geworden. Implementieren Sie eine Funktion cleaner, die die Zahlen aus dieser Liste enfernt und die bereinigte Liste zurückgibt. Dabei soll die ursprüngliche Liste nicht modifiziert werden.
Verwenden Sie dann die Funktion cleaner, um die Funktion palindrome zu implementieren. Diese soll als Input eine noch nicht bereinigte Liste entgegennehmen und das in der Liste versteckte Wort darauf prüfen, ob es sich bei dem Wort um ein Palindrom handelt oder nicht. Wenn das Wort ein Palindrom ist, dann soll die Funktion palindrome das ursprüngliche Wort und True als 2-Tupel zurückgeben, ansonsten das ursprüngliche Wort und False. Wir beschränken uns hier auf Wortpalindrome. Sie müssen Satzpalindrome nicht betrachten / berücksichtigen.
Beispieloutput:
Python-Code
['P', 3, 'y', 't', 0.0, 'h', 1, 1, 1.0, 'o', 'n' ]
geworden. Implementieren Sie eine Funktion cleaner, die die Zahlen aus dieser Liste enfernt und die bereinigte Liste zurückgibt. Dabei soll die ursprüngliche Liste nicht modifiziert werden.
Verwenden Sie dann die Funktion cleaner, um die Funktion palindrome zu implementieren. Diese soll als Input eine noch nicht bereinigte Liste entgegennehmen und das in der Liste versteckte Wort darauf prüfen, ob es sich bei dem Wort um ein Palindrom handelt oder nicht. Wenn das Wort ein Palindrom ist, dann soll die Funktion palindrome das ursprüngliche Wort und True als 2-Tupel zurückgeben, ansonsten das ursprüngliche Wort und False. Wir beschränken uns hier auf Wortpalindrome. Sie müssen Satzpalindrome nicht betrachten / berücksichtigen.
Beispieloutput:
Python-Code
palindrome(['P', 3, 'y', 't', 0.0, 'h', 1, 1, 1.0, 'o', 'n' ]) ('Python', False) palindrome(['A', 6, 8.3, 'n', 5, 'n', 'a']) ('Anna', True)
Python-Code
# Führen Sie diese Zelle aus, um Ihre Funktion zu testen. # Wenn das Ausführen dieser Zelle zu Fehlern führt, dann ist Ihre Implementierung vermutlich nicht korrekt. L1 = ['P', 3, 'y', 't', 0.0, 'h', 1, 1, 1.0, 'o', 'n' ] L2 = ['A', 6, 8.3, 'n', 5, 'n', 'a'] L3 = ['P', 'y', 't', 'h', 'o', 'n'] assert palindrome(L1) == ('Python', False) assert palindrome(L2) == ('Anna', True) assert palindrome(L1) == palindrome(L3) assert L1 == ['P', 3, 'y', 't', 0.0, 'h', 1, 1, 1.0, 'o', 'n' ] assert L2 == ['A', 6, 8.3, 'n', 5, 'n', 'a']
#4
von satn1241 (3090 Punkte)
- 10.01.2021 um 12:16 Uhr
Python-Code
L1 = ['P', 3, 'y', 't', 0.0, 'h', 1, 1, 1.0, 'o', 'n' ] L2 = ['A', 6, 8.3, 'n', 5, 'n', 'a'] def cleaner(liste): bereinigte_Liste = [] for i in range(0,len(liste)): if type(liste[i])== str: bereinigte_Liste.append(liste[i]) return bereinigte_Liste def palindrome(liste_eingabe): liste=[] for i in range(0,len(liste_eingabe)): liste.append(liste_eingabe[i].lower()) for i in range(0, len(liste)): if liste[i] != liste[(len(liste)-i-1)]: p_check = False return p_check elif i > (len(liste)/2): p_check = True return p_check def cleaner_and_check(liste): wort = "".join(cleaner(liste)) print((wort, palindrome(cleaner(liste)))) return None cleaner_and_check(L1) cleaner_and_check(L2)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1