Python :: Aufgabe #305 :: Lösung #4

4 Lösungen Lösungen öffentlich
#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


Quellcode ausblenden 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:

Quellcode ausblenden 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)



Quellcode ausblenden 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
vote_ok
von satn1241 (3090 Punkte) - 10.01.2021 um 12:16 Uhr
Quellcode ausblenden 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

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

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.