Cho một ngày được viết bằng bất kỳ (phải xử lý tất cả trong cùng một chương trình) của các định dạng sau, phân tích nó thành hợp lệ yyyy/mm/dd date
.
17th May 2012
March 14th, 2016
20 February 2014
September 14, 2017
Sunday, June 8, 2015
Quy tắc
- Ngày đôi khi sẽ không hợp lệ, tức là. ngày không chính xác trong tháng hoặc số tháng trong một năm, bạn phải xử lý cả hai trường hợp. Hoặc bằng cách lỗi hoặc trả về một giá trị falsey nhất quán, bạn chọn. (Tuy nhiên, chúng sẽ bám vào các định dạng mẫu ở trên)
- Đệm cho ngày và tháng dưới 10 phải được sử dụng để tạo đầu ra hai chữ số.
- Tên tháng sẽ luôn là tên đầy đủ, không được rút ngắn thành ba ký tự của chúng.
- Bạn có thể giả sử năm sẽ luôn nằm trong phạm vi 0000-9999.
- Số âm không cần phải xử lý.
- Bạn có thể tạo một chương trình hoặc chức năng đầy đủ để đầu ra có thể ở bất kỳ định dạng nào, được in ra bàn điều khiển hoặc được trả về từ một chức năng.
- Đầu vào sẽ luôn là một chuỗi, đầu ra phải luôn là một chuỗi, nếu nó làm cho nó ngắn hơn để lấy nó làm một đối số trong một mảng, ví dụ.
["17th May 2012"]
bạn có thể làm như vậy và đầu ra có thể giống nhau["2012/05/17"]
- Bạn có thể giả sử chính tả trong đầu vào sẽ chính xác.
THƯỞNG: cos người ở đây không thích một thử thách;)
Nếu bạn có thể quản lý để cho phép các định dạng đầu vào The Fourteenth of March, 2016
hoặc March the Fourteenth, 2016
bạn có thể mất thêm 20 byte mã của mình với bất kỳ số byte cuối cùng nào có ít hơn 1 kết quả là 1.
Dưới đây là các số được viết đầy đủ cho mỗi ngày để tránh bất kỳ sự nhầm lẫn nào về chính tả.
First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Nineth, Tenth, Eleventh, Twelfth, Thirteenth, Fourteenth, Fifteenth, Sixteenth, Seventeenth, Eighteenth, Nineteenth, Twentieth, Twenty First, Twenty Second, Twenty Third, Twenty Fourth, Twenty Fifth, Twenty Sixth, Twenty Seventh, Twenty Eighth, Twenty Nineth, Thirtieth, Thirty First
Các trường hợp thử nghiệm
INPUT | Output
17th May 2012 | 2012/05/17
March 14th, 2016 | 2016/03/14
20 February 2014 | 2014/02/20
September 14, 2017 | 2017/09/14
Sunday, June 8, 2015 | 2015/06/08
1st January 1918 | 1918/01/01
The Fourteenth of March, 2016 | 2016/03/14
March the Fourteenth, 2016 | 2016/03/14
November the Seventeenth, 2019 | 2019/11/17
The Thirtieth of April, 2016 | 2016/04/30
30 February 2014 | Invalid
September 99, 2017 | Invalid
Sunday, June8, 2015 | Invalid
The Thirty First of April, 2016 | Invalid
20 February 2014
là mặc định hỗ trợ trong nhiều ngày-parsers, nhưng 17th
và Sunday, June 8, 2015
là khó khăn hơn một chút để phân tích cú pháp (tùy thuộc vào ngôn ngữ).
Thursday, August 25, 2017
hợp lệ? Tôi thấy đệ trình bỏ qua DOW.