Auswertung und Lösungen des Contests #02: "Palindrom"

Gezählt wurden die Token innerhalb der Funktion sowie alles außerhalb davon, falls vorhanden. Getestet wurde mit GCC 3.4.2 und Visual C++ 2005. Wenn Fehler auftraten, dann jeweils bei beiden Compilern, aber teilweise bei verschiedenen Testfällen, was zumeist darauf zurückzuführen ist, dass der Code undefiniertes Verhalten erzeugt.

Korrekte Lösungen

  1. David Scherfgen mit 67 Token
  2. Stefan Seegel mit 76 Token
  3. Florianx mit 79 Token
  4. entenwickler mit 83 Token
  5. Bugger mit 101 Token
  6. Referenz mit 200 Token

Fehlerhafte Lösungen

Nicht kompilierbare Lösungen

Testfälle

Zunächst wurden die Lösungen mit 18 per Hand ausgesuchten Tests geprüft.
Anschließend folgten eine Million Tests mit zufälligen Strings. Die Daten, die vor und hinter dem String im Speicher liegen, werden ebenfalls zufällig gesetzt.

Das Testprogramm zum Nachvollziehen

Testergebnisse

Es wird jeweils nur der erste Fehler angezeigt.

big_muff hat rechts zu weit gelesen bei "x" (Daten davor: "", Daten danach: "")
big_muff: falsch

Bugger: korrekt

drakon hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "")
drakon: falsch

DataByte hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "")
DataByte: falsch

David_pb hat rechts zu weit gelesen bei "" (Daten davor: "", Daten danach: "")
David_pb: falsch

David Scherfgen: korrekt

entenwickler: korrekt

Florianx: korrekt

Helmut lieferte 2 bei "nxpkxn" (Daten davor: "", Daten danach: "zrgkixocy"), korrekt ist 1
Helmut: falsch

Maxim hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "")
Maxim: falsch

neido hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "")
neido: falsch

Phili hat rechts zu weit gelesen bei "" (Daten davor: "", Daten danach: "")
Phili: falsch

Referenz: korrekt

Sicaine hat rechts zu weit gelesen bei "x" (Daten davor: "", Daten danach: "")
Sicaine: falsch

Stefan Seegel: korrekt

TGGC hat rechts zu weit gelesen bei "" (Daten davor: "", Daten danach: "")
TGGC: falsch