介绍:
像Twitter和Instagram等,我想显示诸如1.2K和3.8 M而不是1,222或的数字3,823,456。
但这还不是全部!众所周知,某些人无疑会不喜欢这些缩写,并会尝试将其缩写。因此,1.2k将成为1,200并且3.8 M将成为3,800,000。
任务:
- 您的任务是编写一个程序或函数,将一个数字列表(以字符串形式给出)转换为它们的缩写对,反之亦然。
例如,如果输入列表(或任何STDIN)为['1.4k', '1,234,567', '7.99M'],则应输出:
['1,400', '1.2M', '7,990,000']
您可以遵循下一个缩写形式:
- 10 3- >一公斤-> K
- 10 6- >一百万-> M
- 10 9- > 10 亿-> B
您的代码可以假定所有小写,全部大写,混合大小写或未定义大小写作为输入,并使用其中的任何一个作为输出,但应保持一致。
规则和限制:
- 您可以编写程序或函数,通过
STDIN(或最接近的替代方法),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方法),函数返回值或函数(输出)参数输出结果。 - 输入可以是任何方便的列表或字符串格式。您可以假设小于个,并且列表包含至少一个元素。
ai231 - 每个缩位号码将包含只有一个
.,而一个正常的数字将包含尽可能多的,必要的(你可以假设,这个数字将不会改变)。 - 您可能不输入数字
'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个小数;对于> 1000的数字,最多可以有1个小数。 - 缩写可以是大写或小写
- 我删除了注释中建议的内置限制
以字节为单位的最短代码胜出!
1
要求澄清:缩写输出中小数点后几位数?如何缩写<1000?输入和输出都是大写还是小写?
—
edc65 '16
不应该
—
卡德
'123,456,789' -> '123.4M'吗 同样,这也无法说明要使用多少个小数。当然,1000以下的任何东西都不必缩写。
@ anonymous2阅读了第三条规则。
—
Grajdeanu Alex。
“你不允许使用任何内置模块/功能” 任何内置的功能?
—
Alex Howansky '16
您对“ kilo”的使用会建议使用SI前缀,而这些前缀应该是
—
2016年
["k", "M", "G"]。“正常数量将包含尽可能多的数字”的意思是,在我国,使用任何数字都是错误的。