.NET Interview, Code-Struktur und das Design

7

Ich habe die folgende .NET-Frage in einem Interview gegeben. Ich weiß nicht, warum ich schlechte Noten bekommen habe. Leider habe ich keine Rückmeldung bekommen.

Frage:

Die Datei hockey.csv enthält die Ergebnisse der Hockey Premier League. Die Spalten "Für" und "Gegen" enthalten die Gesamtzahl der erzielten Tore für und gegen jede Mannschaft in dieser Saison (also erzielte Alabama 79 Tore gegen Gegner und hatte 36 Tore gegen sie).

Schreiben Sie ein Programm, um den Namen des Teams mit dem geringsten Unterschied zwischen "für" und "gegen" Ziele zu drucken.

die Struktur der Hockey.csv sieht so aus (es ist eine gültige CSV-Datei, aber ich habe nur die Werte kopiert, um eine Idee zu bekommen)

Team - für - gegen

Alabama 79 36

Washinton 67 30

Indiana 87 45

Newcastle 74 52

Florida 53 37

New York 46 47

Sunderland 29 51

Lova 41 64

Nevada 33 63

Boston 30 64

Nevada 33 63

Boston 30 64

Lösung:

%Vor%

Ausgabe: Kleinster Unterschied in for' and gegen 'Ziele & gt; TEAM: Boston, ZIELE DIF: -34

Kann jemand bitte meinen Code überprüfen und etwas offensichtlich hier falsch sehen? Sie waren nur an der Struktur / dem Design des Codes interessiert und daran, ob das Programm das korrekte Ergebnis (d. H. Den niedrigsten Unterschied) erzeugt. Sehr geschätzt.

    
j_lewis 22.06.2012, 03:12
quelle

3 Antworten

6

Ich denke, du hast die Frage nicht verstanden. Der Interviewer fragte die minimale Differenz zwischen "für" und "gegen" Ziele und Ihr Programm berechnet den besten Zieldurchschnitt. Wenn Sie den minimalen Unterschied sehen, dann ist es New York nicht Boston . Lassen Sie mich hier fenix2222 Code aktualisieren.

%Vor%     
ABH 22.06.2012, 04:46
quelle
11

Vielleicht, weil du so viele Codezeilen geschrieben hast, wenn es nur

sein kann %Vor%     
fenix2222 22.06.2012 03:24
quelle
3

Nur ein paar Dinge aus einer kursorischen Übersicht:

  1. Es gibt zwei Schnittstellen, aber für beide Anwendungen gibt es keinen Wert.
  2. Es gibt keinen Grund, eine DataTable in die Problembeschreibung einzufügen.
  3. Der Code ist übermäßig komplex.
  4. Die Verwendung von IList und IEnumerable in der GetTeams-Methode soll "nur weil" verwendet werden.
  5. Die ResultEvaluator-Klasse ist nicht wiederverwendbar, d. h. sobald Sie die Klasse instanziieren, können Sie die csv-Datei nie erneut festlegen. Sie können die gleiche Methode (GetTeamSmallestDifferenceForAgainst) immer wieder aufrufen. keine anderen öffentlichen Eigenschaften sind verfügbar.
  6. In der GetDataTable-Methode werden die string [] -Felder in einer Zeile deklariert, und dann wird der Wert in der nächsten Zeile festgelegt.
  7. Es gibt weniger als null Gründe, das @ -Symbol für den Parameter 'for' im Konstruktor der Team-Klasse zu verwenden. Benenne einfach das reservierte Wort 'für' in etwas anderes um.
  8. Es gibt viele Konstrukte ab 3.5 .NET, mit denen das Problem viel einfacher gelöst werden kann; Das zeigt nur ein mangelndes Verständnis der Sprache.

Von den Blicken scheint es wirklich, dass Sie versucht haben zu zeigen, dass Sie ein bisschen mehr wussten als das, was in der Problembeschreibung gefragt wurde. Aber, wie das Wissen, das Sie wussten, in dieser Übung verwendet wird, ist ziemlich beängstigend, und nicht auf eine gute Art.

In Zukunft würde ich empfehlen, das Problem einfach zu lösen und es nicht zu überdenken. Mach es einfach.

    
Metro Smurf 22.06.2012 04:57
quelle

Tags und Links