Giới thiệu:
Giống như Twitter và Instagram và những người khác, tôi muốn hiển thị số như 1.2Kvà 3.8 Mthay vì 1,222hoặc 3,823,456.
Nhưng đó không phải là tất cả! Như chúng ta đã biết, có thể có một số người chắc chắn sẽ không thích những từ viết tắt này và sẽ cố gắng đảo ngược chúng. Vì vậy, 1.2ksẽ trở thành 1,200và 3.8 Msẽ trở thành 3,800,000.
Nhiệm vụ:
- Nhiệm vụ của bạn là viết một chương trình hoặc một hàm chuyển đổi một danh sách các số ( được đưa ra dưới dạng chuỗi ) thành các cặp viết tắt của chúng và ngược lại.
Ví dụ: nếu danh sách đầu vào (hoặc bất kỳ STDIN) là ['1.4k', '1,234,567', '7.99M'], thì bạn nên xuất:
['1,400', '1.2M', '7,990,000']
Bạn có thể theo lược đồ tiếp theo để viết tắt:
- 10 3 -> một kilôgam -> K
- 10 6 -> một triệu -> M
- 10 9 -> một tỷ -> B
Mã của bạn có thể giả sử tất cả chữ thường, tất cả chữ hoa, chữ thường hoặc trường hợp không xác định cho đầu vào và sử dụng bất kỳ chữ nào trong số này cho đầu ra, nhưng phải nhất quán.
Các quy tắc và hạn chế:
- bạn có thể viết chương trình hoặc hàm, lấy đầu vào thông qua
STDIN(hoặc thay thế gần nhất), đối số dòng lệnh hoặc đối số hàm và xuất kết quả quaSTDOUT(hoặc thay thế gần nhất), tham số trả về hàm hoặc tham số hàm (out). - đầu vào có thể ở bất kỳ danh sách thuận tiện hoặc định dạng chuỗi. Bạn có thể giả sử rằng ít hơn mỗi và danh sách chứa ít nhất một phần tử.
ai231 - mỗi số viết tắt sẽ chỉ chứa một
.trong khi một số bình thường sẽ chứa bao nhiêu,là cần thiết (bạn có thể cho rằng số này sẽ không bị thay đổi). - bạn KHÔNG THỂ nhập một số như
'123456'nhưng thay vào đó123,456 - quy tắc golf tiêu chuẩn áp dụng.
Các trường hợp thử nghiệm:
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']
Làm rõ:
- đối với các số <1000 sau dấu thập phân trong đầu ra viết tắt, bạn nên có nhiều chữ số theo yêu cầu để có kết quả chính xác. (ví dụ:
2-> sẽ trở thành0.002k) - có nghĩa là tối đa 3 số thập phân ; đối với các số> 1000 bạn có thể có tối đa 1 thập phân . - chữ viết tắt có thể bằng cả chữ thường hoặc chữ hoa
- Tôi đã loại bỏ các hạn chế tích hợp theo đề xuất trong các nhận xét
Mã ngắn nhất tính bằng byte thắng!
'123,456,789' -> '123.4M'? Ngoài ra, điều này không làm rõ có bao nhiêu số thập phân để sử dụng. Chắc chắn bất cứ điều gì dưới 1000 không cần phải viết tắt.
["k", "M", "G"]. "Trong khi một số bình thường sẽ chứa bao nhiêu, khi cần thiết " thì ở nước tôi sẽ là một sai lầm khi sử dụng bất kỳ.