Das Interview: Die Front Nine
Dies ist die erste einer Reihe von Herausforderungen, die durch die Programmierung von Fragen zu Vorstellungsgesprächen inspiriert wurden.
Sie gehen in das Büro, in dem Ihr potenzieller zukünftiger Chef sitzt. "Komm rein und setz dich", sagt er. Sie setzen sich nervös hin und stellen sicher, dass Ihre bissige, aber professionelle Kleidung keine Falten aufweist. Er stellt Ihnen viele Fragen zu Ihrer Ausbildung, früheren Arbeitserfahrungen und so weiter. Du antwortest ihnen meistens ehrlich und fügst hier und da eine kleine Verschönerung hinzu, damit du besser klingst. Er beugt sich vor und beginnt wieder zu sprechen.
"Haben Sie jemals von Code-Golf gehört?" Warum, ja, du liebst Golf Code und machst es oft in deiner Freizeit. "Großartig. Der letzte Teil des Interviews ist eine technische Prüfung. Sie werden mit dem Schreiben von Code beauftragt, um eine Reihe von Problemen zu lösen ..." Er gibt Ihnen ein Blatt Papier. Du siehst schnell darüber hinweg. Kinderleicht. Warum fragte er nach Code Golfing?
"Sie werden basierend auf der Gesamtgröße Ihrer Lösungen für diese Probleme bewertet. Wenn Sie weniger Punkte erzielen als alle anderen Kandidaten, liegt der Job bei Ihnen." Oh. "Wie beim Golf gibt es 18 Probleme, die in zwei 9er-Sätze unterteilt sind. Sie können jede Sprache verwenden, die Sie für die Lösung verwenden möchten. Wir haben Compiler und Dolmetscher für jede Sprache, von der Sie gehört haben, und mit Sicherheit einige, die Sie haben nicht. Viel Glück! "
Die Aufgaben
Aufgabe 1: Multiplikationstabelle
Wenn Sie eine Zahl n
als Eingabe angeben, geben Sie eine Multiplikationstabelle für positive ganze Zahlen im Bereich aus [1, n]
. n
wird im Bereich sein [1, 12]
. Alle Zahlen sollten in der Tabelle linksbündig sein. Verwenden Sie das Zeichen x
für die linke obere Ecke.
Beispiele:
n=4
x 1 2 3 4
1 1 2 3 4
2 2 4 6 8
3 3 6 9 12
4 4 8 12 16
n=10
x 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10
2 2 4 6 8 10 12 14 16 18 20
3 3 6 9 12 15 18 21 24 27 30
4 4 8 12 16 20 24 28 32 36 40
5 5 10 15 20 25 30 35 40 45 50
6 6 12 18 24 30 36 42 48 54 60
7 7 14 21 28 35 42 49 56 63 70
8 8 16 24 32 40 48 56 64 72 80
9 9 18 27 36 45 54 63 72 81 90
10 10 20 30 40 50 60 70 80 90 100
Schritt 2: Ordnungszahl RMS
Ausgeben des quadratischen Mittelwerts der ASCII-Ordnungszahlen bei einer gegebenen Folge von ASCII-Zeichen . Die Zeichenfolge enthält niemals ein NULL-Byte (Ordnungszahl 0).
Beispiele:
Input: The Interview: The Front Nine
Output: 95.08290393488019
Input: `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Output: 91.38101204135423
Schritt 3: Projektilbewegung
Geben Sie unter Berücksichtigung der Anfangsgeschwindigkeit und des Winkels mit dem Horizont eines vom Boden abgefeuerten Projektils die horizontale Distanz aus, die es vor der Landung zurücklegen wird. Die Anfangsgeschwindigkeit wird in Metern pro Sekunde angegeben, der Winkel in Grad und die Entfernung in Metern. Nehmen Sie die Schwerkraft der Erde an ( g=9.81 m/s/s
) und ignorieren Sie relativistische Effekte. Um dieses Problem zu lösen, können Sie davon ausgehen, dass die Erde flach ist (Sie müssen die Erdkrümmung bei Ihren Berechnungen nicht berücksichtigen). Der angegebene Winkel liegt im Bereich [0, 90]
. Ihre Antwort sollte auf mindestens zwei Dezimalstellen genau sein (Rundung ist zulässig).
Beispiele:
velocity=50, angle=45
Result: 254.84 (rounded)
velocity=10, angle=60
Result: 8.82798576742547
Schritt 4: Etaoin Shrdlu
Bei einer Zeichenfolge mit druckbaren ASCII-Zeichen (Ordnungszahlen im Bereich [32,127]
), die nicht null ist , geben Sie die Zeichenfolge aus, wobei die Zeichen nach Häufigkeit in absteigender Reihenfolge sortiert sind. Bei Stimmengleichheit aufsteigend nach ASCII-Ordnungszahl ordnen.
Beispiele:
Input: "Hello, World!"
Output: "llloo !,HWder"
Input: "Programming Puzzles and Code Golf"
Output: " oooPPaaddeeggllmmnnrrzzCGfisu"
Schritt 5: Fibonacci-Index
Bestimmen Sie anhand einer Zahl, ob es sich um eine Fibonacci-Zahl handelt, und geben Sie, falls dies der Fall ist, den Index (beginnend mit 1) in der Sequenz aus. Wenn es sich nicht um eine Fibonacci-Zahl handelt, geben Sie 0 aus. Bei 1, die zweimal in der Folge enthalten ist, geben Sie das früheste Vorkommen aus (Index 1).
Beispiele:
Input: 1
Output: 1
Input: 144
Output: 12
Input: 4
Output: 0
Schritt 6: Anagramme
Bei drei Zeichenfolgen mit englischen Kleinbuchstaben ( [a-z]
) wird eine Zeichenfolge ausgegeben, die alle Buchstaben der ersten Zeichenfolge verwendet, mit der zweiten Zeichenfolge beginnt und mit der dritten Zeichenfolge endet. Wenn eine solche Zeichenfolge nicht erstellt werden kann, geben Sie eine leere Zeichenfolge aus. Die Eingabezeichenfolgen bestehen immer aus mindestens einem Buchstaben. Die "Mitte" der Ausgabezeichenfolge (zwischen Präfix- und Postfix-Zeichenfolge) kann leer sein, wenn für die Präfix- und Postfix-Zeichenfolge alle Buchstaben in der Quellzeichenfolge verwendet werden.
Beispiele:
Input: geobits bi es
Possible output: bigtoes
Input: mariatidaltug digital trauma
Output: digitaltrauma
Input: mego go lf
Output: (empty string)
Schritt 7: Ausfüllen der Lücken
Wenn Sie eine Liste von Zeichenfolgen und ein Füllzeichen angegeben haben, geben Sie das Ergebnis aus, indem Sie alle Zeichenfolgen bis zur Länge der längsten Zeichenfolge mit dem Füllzeichen auffüllen, wobei die ursprüngliche Reihenfolge in diesem Fall aufsteigend nach der ursprünglichen Länge der Zeichenfolgen sortiert bleibt einer Krawatte. Sie sollten in der Lage sein, Listen beliebiger endlicher Länge zu verarbeiten, die Zeichenfolgen beliebiger endlicher Länge enthalten und nur durch Speicherbeschränkungen begrenzt sind.
Beispiele:
Input: ["hello","world","this","is","a","test"], 'x'
Output: ["axxxx","isxxx","thisx","testx","hello","world"]
Input: ["I'm","a","lumberjack","and","I'm","okay"], '!'
Output: ["a!!!!!!!!!","I'm!!!!!!!","and!!!!!!!","I'm!!!!!!!","okay!!!!!!","lumberjack"]
Schritt 8: Änderung vornehmen
Geben Sie bei einer Zahl im Bereich [0.01,0.99]
die Anzahl jeder der 4 US-Standardmünzen aus, die zur Darstellung dieses Werts verwendet werden sollen, sodass die Gesamtzahl der Münzen minimiert wird. Die Eingabe hat immer genau 2 Nachkommastellen.
Münzwertreferenz:
Penny: 0.01, Nickel: 0.05, Dime: 0.10, Quarter: 0.25
Beispiele:
Input: 0.75
Output: [0,0,0,3]
Input: 0.23
Output: 3 pennies, 0 nickels, 2 dimes, 0 quarters
Schritt 9: Bereiche zusammenführen
Ausgehend von einer endlichen Liste von 2 Tupeln mit Ganzzahlen, die Bereiche darstellen, geben Sie das Ergebnis der Zusammenführung aller überlappenden oder benachbarten Bereiche aus. Alle Bereiche haben mindestens die Länge 1 und der Startwert liegt immer unter dem Endwert. Die Reihenfolge der Ausgabe spielt keine Rolle.
Beispiele:
Input: (2,3), (4,5), (6,9), (0,7)
Output: (0,9)
Input: (-3,4), (2,5), (-10,-4)
Output (-10,-4), (-3,5)
Input: (2,3), (5,6), (6,8)
Output: (5,8), (2,3)
Regeln
- Das ist Code-Golf , also gewinnt die kürzeste Antwort (in Bytes).
- Ihre Punktzahl ist die Summe der Byte-Zählungen für alle Ihre Lösungen.
- Standardlücken sind verboten.
- Die Ein- und Ausgabe kann auf jede Art und Weise erfolgen, die für Ihre Sprache als Standard gilt.
- Sie können vollständige Programme oder Funktionen für jede Herausforderung schreiben und zwischen den beiden Herausforderungen wechseln.
- Sie müssen für alle Herausforderungen dieselbe Sprache verwenden. Wenn Versionsunterschiede so bedeutend sind, dass sie in der Regel als separate Einträge in Herausforderungen betrachtet werden, müssen Sie durchgehend dieselbe Version verwenden. Wenn Sie beispielsweise Python verwenden, müssen Sie für alle Herausforderungen entweder Python 2 oder Python 3 verwenden.
- Sie müssen alle Herausforderungen lösen. Antworten, die nur einen Teil der Herausforderungen lösen, gelten als nicht wettbewerbsfähig.
- Sie können integrierte Sprachen oder Standardbibliotheken verwenden.
Bestenliste
Das Stapel-Snippet am Ende dieses Beitrags generiert die Rangliste aus den Antworten a) als Liste der kürzesten Lösungen pro Sprache und b) als Gesamtrangliste.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
## Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
## Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Snippet angezeigt wird:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes