Java Accenture "Knack den Code"

F_GXdx

Captain
Dabei seit
März 2006
Beiträge
4.028
Hey Leute,

so ein dämlicher Wettbewerb von Accenture hat mich gerade 30 Minuten meines Lebens gekostet, weil es die Lösung einfach nicht akzeptiert!!!

http://careers.accenture.com/de-de/work-we-do/Pages/knack-den-code.aspx

Meine Lösung ist:
forEach((m) -> System.out.print(m));

Es wird aber einfach nicht gefressen. Nun sollte man hier vielleicht keine Lösung posten um das Rätsel nicht zu versauen, aber wo bitte habe ich einen Denkfehler? Was mache ich falsch? Wie würdet ihr rangehen?

Danke
 

tnoay

Banned
Dabei seit
Nov. 2013
Beiträge
1.901
kann java die syntax?

ich hätte gesagt irgendwas mit list.reverse
 

F_GXdx

Captain
Ersteller dieses Themas
Dabei seit
März 2006
Beiträge
4.028

Hades85

Commander
Dabei seit
Jan. 2008
Beiträge
2.252
Lambda ausrdücke habe ich mir immer noch nicht angeschaut, also etschuldige wenn ich mich irre.

Aber ist deine Lösung nicht generell falsch? Du printest doch jede neue Message oder nicht? Und nicht nur die "Gut gemacht".
 

Lacritz

Lieutenant
Dabei seit
Okt. 2013
Beiträge
912
3minuten gebraucht um es zu "knacken"... also das ist echt easy Bist aber auf dem richtigen Weg
 

Hades85

Commander
Dabei seit
Jan. 2008
Beiträge
2.252
Generell hätte ich es ganz primitiv gemacht. Einfach den 0 Index angesprochen. Es steht in der Aufgabenstellung nirgendow dass man eine dynamisch Lösung finden muss.
 

Lacritz

Lieutenant
Dabei seit
Okt. 2013
Beiträge
912
wieso arbeitet ihr mit dem index?
 
C

carom

Gast
Meine Lösung ist:
forEach((m) -> System.out.print(m));
Lass dich nicht ärgern, mit deiner Lösung ist alles in Ordnung. Die Seite kompiliert den Code offensichtlich nicht wirklich, sondern vergleicht sie nur gegen eine zu erwartende Eingabe. Es gibt noch eine kürzere Schreibweise als deine (siehe thecain), die zur gleichen Ausgabe führt und von der Seite akzeptiert wird. Ich könnte wetten (jedoch nicht ausprobiert), dass deine Lösung und die "korrekte" Lösung auf Bytecode-Ebene sogar genau gleich ausschauen.

Aber ist deine Lösung nicht generell falsch? Du printest doch jede neue Message oder nicht? Und nicht nur die "Gut gemacht".
Die erwartete Ausgabe ist "Gut gemacht in Java 8!".
 
Zuletzt bearbeitet:

F_GXdx

Captain
Ersteller dieses Themas
Dabei seit
März 2006
Beiträge
4.028
Danke für die Hinweise! Sehe ich genau so wie ihr...

Edit:
Hab mich jetzt mal kurz mit den neuen Java 8 Syntaxmöglichkeiten vertraut gemacht, nunja, stimme der Seite zu... wenn man sich auskennt ist meine Lösung zumindest nicht schön... aber ja, auf Bytecode Ebene dürfte sicherlich dasselbe rauskommen wie die knappe Lösung.
 
Zuletzt bearbeitet:

Hades85

Commander
Dabei seit
Jan. 2008
Beiträge
2.252
Anscheinend habe ich die Aufgabe nicht richtig gelesen.

Ich dachte man soll nur die "Gut gemacht" Message printen. :D
 

F_GXdx

Captain
Ersteller dieses Themas
Dabei seit
März 2006
Beiträge
4.028
Falsch. :D
 
B

black90

Gast
Benutzt man mittlerweile kein @Override mehr bei toString() ?
Oder haben die auf der Seite einen schlechten Stil ? :p

Naja wer tüfteln will -> projecteuler.net
 

thecain

Ensign
Dabei seit
Sep. 2009
Beiträge
176
Benutzt man schon, aber hat keinen Einfluss (zumindest auf den Code direkt)

Und die Seite hat allgemein nicht den besten Style... schon alleine daher, dass sie nicht kompiliert sondern nur ein String vergleich o.ä. auf die Lösung macht.
 

F_GXdx

Captain
Ersteller dieses Themas
Dabei seit
März 2006
Beiträge
4.028
Es würde auch kein normaler Mensch ohne Not zwei verschiedene Methoden implementieren, die genau dasselbe machen (toString() und getMessage()).

Gut, dass wir auf der Arbeit gerade einen Java-Auftrag zu vergeben haben. Wer ihn nicht bekommt ist damit wohl klar, harhar ^^
 
B

black90

Gast
Jup, haben auch lauter BWL Posten in den Jobanzeigen, aber keine Entwickler Jobs (Frankfurt) :D
 
Top