Woher kommst du denn? Von developia.de?
Richtig. Dort hast du meine Aufmerksamkeit geweckt
Ja, mein Ansatz funktioniert auf diese "klassische" Art. Nur dass ich nicht von der Mitte nach außen gehe (weil es bei einem Palindrom mit einer geraden Länge kein mittleres Zeichen gibt und das somit etwas mehr Aufwand wäre), sondern vom Anfang und vom Ende nach innen.
Richtig, bei dem Ansatz vergleiche ich auch von Aussen nach Innen.
Danke für die Antwort.
Du darfst dich auf viele weitere Aufgaben freuen.
Tue ich !
Noch was Kurioses. Die kürzeste
"Lösung" - zumindest unter Linux mit g++ Version 4.1.3 und -O2 - ist
|
Quellcode
|
1
|
size_t my_palindrome(const char* p_string) {}
|
mit
keinem einzigen Token
Hintergrund: der Rückgabewert einer Funktion wird im eax Register des Prozessors abgelegt. Da die Referenzimplementierung
vor my_palindrome() aufgerufen wurde, liegt deren korrekter Rückgabewert noch in besagtem Registern (da zwischen den Funktionsaufrufen keine weiteren Anweisungen stehen). Also reicht es, in my_palindrome eax nicht zu modifizieren, in dem man am einfachsten gar nichts tut.
Der Kontroll-Code findet so in eax das korrekte Ergebnis.
Keine Ahnung, ob dieser Effekt auch mit dem Microsoft Compiler reproduzierbar ist.