Dienstag, 5. März 2013

Distinct Letters

Das Problem 8 „Distinct Letters“ von HP Code wars 2013 für 4 Punkte ist eher eines der sehr einfachen Probleme. Es muss geprüft werden, ob ein Wort einen jeden Buchstaben des Wortes nur einmal verwendet.
data = """UNCOPYRIGHTABLE 
FLIPPER 
EXECUTABLE 
UNPROFITABLE 
QUESTIONABLY 
WINDOW 
TAMBOURINE 
. """


def daten_aufbereiten(data):
    """ Wandelt die Daten in Zeilen
    in einer Liste um und gibt die
    Liste zurück...

    """
    zeilen = data.replace(" ","").split("\n")
    if zeilen[-1] == ".":
        zeilen.pop()
    return zeilen


def distinct_letters_pruefen(wort):
    """ Muss prüfen, ob ein Wort einen
    Buchstaben mehr als einmal nutzt,
    dann ist der Rückgabewert
        FALSE
    sonst
        TRUE
    """
    if len(wort) != len(set(wort)):
        return False
    else:
        return True


woerter = daten_aufbereiten(data)

for wort in woerter:
    if distinct_letters_pruefen(wort):
        print("{} USES DISTINCT LETTERS.".format(wort))
    else:
        print("{} DOES NOT USE DISTINCT LETTERS.".format(wort))
Ich finde meine Lösung intelligent, weil kurz und richtige Ergebnisse geliefert werden ohne dass ich eine Prüfung je Buchstabe durchführen muss.

1 Kommentar:

  1. Wieder überflüssiges ``if``/``else`` weil die Bedingung im ``if`` ja schon zu einem Wahrheitswert ausgewertet wird.

    AntwortenLöschen