Einführung:
Wie Twitter und Instagram und andere wollte ich Zahlen wie 1.2Kund 3.8 Manstelle von 1,222oder anzeigen 3,823,456.
Aber das ist nicht alles! Wie wir alle wissen, könnte es einige Menschen geben, die diese Abkürzungen zweifellos nicht mögen und versuchen werden, sie umzukehren. Also 1.2kwird 1,200und 3.8 Mwird 3,800,000.
Die Aufgabe:
- Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, die eine Liste von Zahlen ( die als Zeichenfolgen angegeben werden ) in ihre Abkürzungspaare konvertiert und umgekehrt.
Wenn beispielsweise die Eingabeliste (oder eine beliebige STDIN) vorhanden war ['1.4k', '1,234,567', '7.99M'], sollten Sie Folgendes ausgeben:
['1,400', '1.2M', '7,990,000']
Sie können dem nächsten Schema für Abkürzungen folgen:
- 10 3 -> ein Kilo -> K.
- 10 6 -> eine Million -> M.
- 10 9 -> eine Milliarde -> B.
Ihr Code kann für die Eingabe nur Kleinbuchstaben, Großbuchstaben, Misch- oder undefinierte Groß- und Kleinschreibung annehmen und diese für die Ausgabe verwenden, sollte jedoch konsistent sein.
Regeln und Einschränkungen:
- Sie können ein Programm oder eine Funktion schreiben, indem Sie Eingaben über
STDIN(oder die nächstgelegene Alternative), ein Befehlszeilenargument oder ein Funktionsargument vornehmen und das Ergebnis überSTDOUT(oder die nächstgelegene Alternative), den Funktionsrückgabewert oder den Funktionsparameter (out) ausgeben . - Die Eingabe kann in einem beliebigen Listen- oder Zeichenfolgenformat erfolgen. Sie können davon ausgehen, dass die Werte kleiner als die einzelnen sind und dass die Liste mindestens ein Element enthält.
ai231 - Jede abgekürzte Nummer enthält nur eine,
.während eine normale Nummer so viele,wie nötig enthält (Sie können davon ausgehen, dass diese Nummern nicht geändert werden). - Sie dürfen keine Nummer als eingeben
'123456', sondern123,456 - Es gelten die Standardregeln für Code-Golf .
Testfälle:
Input: ['1.5M', '77.6k', '123,456,789'] Output: ['1,500,000', '77,600', '123.4M']
Input: ['3,000,000,000', '581k', '2b'] Output: ['3B', '581,000', '2,000,000,000']
Input: ['0.1k'] Output: ['100']
Input: ['888', '33'] Output: ['0.888k', '0.033k']
Erläuterungen:
- Für Zahlen <1000 nach dem Dezimalpunkt in der Abkürzungsausgabe sollten Sie so viele Ziffern wie erforderlich haben, um das richtige Ergebnis zu erhalten. (zB:
2-> wird0.002k) - das bedeutet höchstens 3 Dezimalstellen ; Für Zahlen> 1000 können Sie maximal 1 Dezimalstelle verwenden . - Die Abkürzung kann sowohl in Klein- als auch in Großbuchstaben angegeben werden
- Ich habe die eingebaute Einschränkung entfernt, wie in den Kommentaren vorgeschlagen
Der kürzeste Code in Bytes gewinnt!
'123,456,789' -> '123.4M'? Dies verdeutlicht auch nicht, wie viele Dezimalstellen verwendet werden sollen. Sicherlich sollte alles unter 1000 sowieso nicht abgekürzt werden müssen.
["k", "M", "G"]. Was bedeutet "während eine normale Zahl so viele wie nötig enthält ", dass es in meinem Land ein Fehler wäre, eine zu verwenden.