Samstag, 9. März 2013

Room for an argument

Room for an argument“ war Problem 11 bei HP Code wars 2013 und es gab hierfür insgesamt 5 Punkte, was mir recht hoch erscheint, wenn man sich das Problem vergegenwärtigt. Insgesamt galt es bei einer Reihe von Texten aus „is“ ein „is not“ zu machen und umgekehrt.

Aus meiner Sicht ließ sich das mit Stringoperationen erledigen ohne jede Zeile gesondert zu parsen, womit ich direkt einen Gedankenfehler gemacht habe, weil ich dabei z. B. „This“ übersehen hatte. Folglich muss doch jede Zeile gesondert geparst werden bzw. müssen die Ersetzungen angepasst werden.
data = """7 
This is not an argument. 
An argument is an intellectual process. 
It is fair if you do not go. 
The ferris wheel is not working. 
A butterfly is beautiful, but litter is not. 
A lady discerns that which is not elegant from that which is. 
A lemur is a monkey and a grivet is a monkey but a chimp is not. """

for i, line in enumerate(data.split("\n")):
    if not i == 0:

        print(line)
        
        line = line.strip(" ")
        line = line.replace(" is not"," ")
        line = line.replace(" is"," is not")
        line = line.replace(" "," is")
        
        print(line,"\n")
Ob die es sich so gedacht haben? Alternativ müsste man jede Zeile in eine Liste aufsplitten und dann jedes Element und ggf. sein Folgeelement einzeln parsen und Änderungen auf einer Liste vornehmen. Die Lösung hier scheint mit vertretbar.

Keine Kommentare:

Kommentar veröffentlichen