2009-07-28 4 views
9

Ich frage mich, was ist ein guter Online-Richter für nur Algorithmen üben. Ich bin im Moment nicht sehr gut darin, Algorithmen zu schreiben, also wäre wahrscheinlich etwas Leichtes (und am wenigsten frustrierend) gut.Beste Online-Bewertung mit guter Java-Unterstützung?

Ich habe versucht, die UVA Online-Richter, aber es dauerte etwa 20 Versuche, um die erste Beispielfrage richtig zu bekommen; Es gab absolut keine Dokumentation darüber, wie man Eingaben liest usw. Ich habe über Topcoder gelesen, aber ich will nicht wirklich konkurrieren, sondern nur üben.

Antwort

4

Werfen Sie einen Blick auf Topcoder. Ja, sie haben Wettkämpfe, aber Sie können immer noch einfach selbst "spielen". Sie erhalten ein Ziel und ein Zeitlimit und Sie wählen Ihre Sprache aus, und dann codieren Sie sie. Sie können den Quellcode der besten Programmierer anzeigen, um sich selbst zu verbessern.

Ich habe Topcoder für eine Weile verwendet und war noch nie in einem Wettbewerb. Hör zu.

Sie können auch überprüfen, Project Euler. Kein Richter, aber für viele Sprachen gibt es mathematische Probleme und Lösungen.

2

Dies ist ein Jahr von jetzt alt, so lautet meine Antwort für zukünftige stumblers.

Die ACM-ICPC Live Archive hat viele große Probleme und in vielen verschiedenen Bereichen. (Projekt Euler ist auch toll, aber die Probleme sind alle nummern-theoretisch.) Und Hoop-Jumping ist normal mit diesen Dingen ... zuletzt habe ich überprüft, Facebook Puzzles erfordert, dass Sie eine Zip-Datei mit dem Code und eine Ant-Builddatei per E-Mail senden, und sie brauchen eine lange Zeit, um zu dir zurück zu kommen.

Ich habe nur Java-Code an UVa gesendet, also werde ich ein wenig auf die Java-Angaben für jeden anderen, der sich wehrt, eingehen. Ihre Klasse muss Main heißen und ihr Einstiegspunkt muss die main Methode sein. Sie lesen von System.in. Wenn Sie auf einem Unix-y-Plattform sind, nach dem Kompilieren können Sie

Java Main < input.txt

verwenden Ihr Programm zu testen.

Die Darstellung muss genau sein. Wenn sie beispielsweise sagen, dass "Ausgaben durch eine Leerzeile getrennt sein sollten", bedeutet das nicht, dass "jeder Ausgabe eine Leerzeile folgt". Scheuen Sie sich nicht davor, ihre Foren zu besuchen.

Referenz: http://online-judge.uva.es/board/viewtopic.php?t=7429

(In ihrem Beispielcode, sie das Eingangs-Byte-für-Byte lesen Sie das nicht tun, sondern Scanner verwenden Es ist auch nicht notwendig, die wichtigste Methode der eine Instanz erstellen zu lassen.. die Klasse. Sie können 100% statisch gehen, und oft sind die Probleme klein genug, dass OOP Sie nichts kauft.)

+0

Auch, seit ich dies geschrieben habe, TalentBuddy wurde erstellt, und es ist viel einfacher zu verwenden als der UVa Richter. – johncip

2

CodingBat könnte Ihnen einige gute Praxis geben. Es reagiert sofort mit Testergebnissen.

Verwandte Themen