前書き:
同様に、TwitterやInstagramのと他の人が、私は次のように番号を表示したい1.2Kと3.8 Mの代わりに、1,222または3,823,456。
しかし、それだけではありません!誰もが知っているように、これらの略語を間違いなく嫌い、逆にしようとする人間がいる可能性があります。だから、1.2kとなります1,200と3.8 Mなります3,800,000。
タスク:
- あなたの仕事は、数字のリスト(文字列として与えられる)を短縮ペアに、またはその逆に変換するプログラムまたは関数を書くことです。
たとえば、入力リスト(またはany STDIN)がの['1.4k', '1,234,567', '7.99M']場合、出力する必要があります:
['1,400', '1.2M', '7,990,000']
略語については、次のスキーマに従うことができます。
- 10 3- > 1キロ-> K
- 10 6- > 100万-> M
- 10 9- > 10 億-> B
コードでは、入力にすべて小文字、すべて大文字、大文字小文字の混在、または未定義の大文字小文字を想定し、これらのいずれかを出力に使用できますが、一貫性が必要です。
規則と制限:
STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(出力)パラメーターを介して結果を出力するプログラムまたは関数を作成できます。- 入力は、任意の便利なリスト形式または文字列形式です。がそれぞれよりも小さく、リストに少なくとも1つの要素が含まれていると仮定できます。
ai231 - 各省略番号には1つしか 含まれません
.が、通常の番号には必要な数だけが含まれ ます(この番号は変更されないと想定できます)。, - として番号を入力することはできませんが、
'123456'むしろ123,456 - 標準のコードゴルフ規則が適用されます。
テストケース:
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']
明確化:
- 略語の出力で小数点以下の数字が1000未満の場合、正しい結果を得るために必要な桁数が必要です。(例:
2->はになります0.002k)- これは、最大で3桁の10進数を意味します。1000を超える数値の場合、最大1桁の小数を使用できます。 - 略語は小文字でも大文字でもかまいません
- コメントで提案されている組み込みの制限を削除しました
バイト単位の最短コードが勝ちです!
'123,456,789' -> '123.4M'?また、これは使用する小数の数を明確にしません。確かに、1000未満のものはとにかく短縮する必要はありません。
["k", "M", "G"]。「通常の番号には必要なだけ含まれる」とはどういう意味ですか、私の国ではanyを使用するのは間違いです。