Alexander (HH): replace mit Platzhalter

Beitrag lesen

Das ist doch Haarspalterei, sorry.

Natürlich ist das Haarspalterei. Es muß Haarspalterei sein, weil Computer so blöd sind, exakt das zu machen, was man ihnen sagt, und nicht das, was man meint. Deswegen muß das Problem präzise beschrieben werden.

Meine Lösung ist da sogar eine Verbesserung, weil sie allgemeiner ist, als genau bis 99.

Es ist besser, wenn es die gestellte Aufgabe nicht erfüllt?

"a100" soll laut Aufgabenstellung zu a[10]+"0" evaluiert werden, und nicht zu a[100]. Dein Lösungsansatz ist ab Array-Längen von 101 defekt.

Außerdem muss man nur die Schleifenbedingung entsprechend ändern, wenn wirklich genau bis 99 gehen will. Was dann aber, wenn das Array mal kürzer ist? Genau, ein Laufzeitfehler...

Nein. Ein Laufzeitfehler entsteht vielleicht in Java, aber definitiv NICHT in Javascript. Ein nicht vorhandenes Array-Element evaluiert zu einem undefinierten Wert. Bei einem String-Concat wird daraus der String "undefined". Das ist vielleicht nicht hübsch, und vielleicht auch nicht ganz das, was Oliver sich gedacht hat. Aber es gibt keinen Laufzeitfehler.

Jaja schon gut, hatte dir ja schon teilweise recht gegeben, was dein Problem 2 betrifft, aber das wird, wie du richtig geschrieben hast, einfach durch Rückwärtslaufen erledigt.

Beachte das Wörtchen "Lösungsansatz". Das Rückwärtslaufen löst nur das Problem 2, nicht das Problem 3. Im Gegenteil, es macht Problem 3 schlimmer, weil die letzten 10 Durchläufe schon auf "a" + eine Ziffer anspringen.

Dein Problem 3 sehe ich gar nicht. Jedenfalls nicht in der Aufgabenstellung, wenn du schon haarspalerisch argumentiert. Es steht nämlich nirgends, dass die Erstzungswerte etwas wie "ich mag a10 nicht" sein können, oder dass sie überhaupt so aufgebaut sein dürfen, dass wieder neue ann entstehen. Das würde ja auch wirklich wenig Sinn machen, oder aber es wäre absichtlich eine ganz raffinierte Sache. Die Aufgabenstellung sagt darüber jedenfalls nichts.

Richtig. Die Aufgabenstellung sagt darüber gar nichts. Sie schließt keine Werte für die Array-Elemente aus. Auch nicht solche, die ein "a" gefolgt von ein oder zwei Ziffern enthalten. Deswegen sollte man besser davon ausgehen, dass solche Werte vorkommen können und nicht erneut ersetzt werden sollen. Oder noch besser: Man fragt nach, wie sich der Algorithmus in diesem Fall verhalten soll und bessert die Aufgabenstellung / Spezifikation nach.

Alexander