Viết hàm hoặc chương trình chấp nhận một ngày (dưới dạng chuỗi có YYYY-MM-DDđịnh dạng) làm đầu vào và trả về giá trị trung thực nếu ngày đó là "theo thứ tự chữ cái" và giá trị falsey nếu không.
Ngày theo thứ tự chữ cái là ngày có tháng, ngày và năm theo thứ tự bảng chữ cái khi được biểu thị dưới dạng chuỗi (và khi được xem xét cụ thể theo thứ tự M - D - Y). Ví dụ: ngày 26 tháng 9 năm 2018 là một ngày theo thứ tự chữ cái:
September 26th 2018 -> September twenty-sixth two thousand eighteen
September
Twenty-sixth
Two thousand eighteen
Một cách khác để nghĩ về thách thức này: "các yếu tố của một ngày nhất định được sắp xếp theo từ vựng?"
Ghi chú:
- Năm 2018 được thể hiện là "hai nghìn mười tám", chứ không phải "hai mươi mười tám" hay "hai không một một tám". Một ví dụ khác, năm 1456 sẽ được đại diện là "một nghìn bốn trăm năm mươi sáu", chứ không phải "mười bốn năm mươi sáu".
- Thứ 26 được thể hiện là "hai mươi sáu", chứ không phải "hai mươi sáu".
- Mỗi yếu tố của ngày được coi là một tổng thể. Đây là lý do tại sao năm 2018 không tự động thất bại mặc dù "e" trong mười tám đến trước "t" trong hai.
Những ngày sau đây không theo thứ tự abc:
- Ngày 2 tháng 9 năm 2018 ("thứ hai" nên sắp xếp trước "tháng 9")
- Ngày 30 tháng 4 năm 4000 ("bốn ngàn" nên sắp xếp trước "thứ ba mươi")
Quy tắc bổ sung:
- Bạn sẽ nhận được ngày dưới dạng một chuỗi, được định dạng như thế nào
YYYY-MM-DD. Năm sẽ luôn có bốn chữ số, và tháng và ngày sẽ luôn có hai chữ số. Không đệm không được thể hiện trong chuyển đổi chuỗi (ví dụ: '2000-01-01' là 'hai nghìn đầu tiên' như bạn mong đợi). - Bạn có thể cho rằng ngày sẽ luôn có hiệu lực (không có ngày 30 tháng 2, không có ngày 1 Smarch) và giá trị của năm sẽ là dương (không có ngày BC), nhưng ngày có thể sẽ ở xa trong tương lai ("trong năm
haichín ngàn ... "). - Bạn nên trả về một giá trị trung thực hoặc falsey, không nhất thiết phải là boolean
TruehoặcFalse. Nếu bạn làm điều này trong Javascript và muốn quay lại'0'và0điều đó tốt. Tất nhiên, nếu bạn muốn trả lại một boolean, hãy thoải mái. - Sơ hở tiêu chuẩn bị cấm.
- Đây là
code-golf
Thêm ví dụ về ngày tháng theo thứ tự chữ cái
- 2066-01 / 02 (Thứ hai, hai nghìn sáu mươi sáu)
- 1000-04-08 (ngày 8 tháng 4, một nghìn)
- 6000-08-01 (đầu tháng tám, sáu ngàn)
Thêm ví dụ về các ngày không theo thứ tự chữ cái
- 1066-01 / 02 (giây thứ hai, một nghìn sáu mươi sáu)
- 1000-04-07 (ngày 7 tháng Tư, một ngàn)
- 8000-08-01 (đầu tháng 8, tám nghìn)