Given a date
string in the form Day Month Year
, where:
Day
is in the set{"1st", "2nd", "3rd", "4th", ..., "30th", "31st"}
.Month
is in the set{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
.Year
is in the range[1900, 2100]
.
Convert the date string to the format YYYY-MM-DD
, where:
YYYY
denotes the 4 digit year.MM
denotes the 2 digit month.DD
denotes the 2 digit day.
Example 1:
Input: date = "20th Oct 2052" Output: "2052-10-20"
Example 2:
Input: date = "6th Jun 1933" Output: "1933-06-06"
Example 3:
Input: date = "26th May 1960" Output: "1960-05-26"
Constraints:
- The given dates are guaranteed to be valid, so no error handling is necessary.
Solution: String + HashTable
Time complexity: O(1)
Space complexity: O(1)
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// Author: Huahua class Solution { public: string reformatDate(string date) { stringstream ss(date); string day, month, year; ss >> day >> month >> year; unordered_map<string, string> m{{"Jan", "01"}, {"Feb", "02"}, {"Mar", "03"}, {"Apr", "04"}, {"May", "05"}, {"Jun", "06"}, {"Jul", "07"}, {"Aug", "08"}, {"Sep", "09"}, {"Oct", "10"}, {"Nov", "11"}, {"Dec", "12"}}; day = day.substr(0, day.length() - 2); if (day.length() == 1) day = "0" + day; return year + "-" + m[month] + "-" + day; } }; |
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// Author: Huahua class Solution { public String reformatDate(String date) { Map<String, String> m = new HashMap<String, String>(); m.put("Jan", "01"); m.put("Feb", "02"); m.put("Mar", "03"); m.put("Apr", "04"); m.put("May", "05"); m.put("Jun", "06"); m.put("Jul", "07"); m.put("Aug", "08"); m.put("Sep", "09"); m.put("Oct", "10"); m.put("Nov", "11"); m.put("Dec", "12"); String[] items = date.split(" "); String day = items[0].substring(0, items[0].length() - 2); if (day.length() == 1) day = "0" + day; return items[2] + "-" + m.get(items[1]) + "-" + day; } } |
Python
1 2 3 4 5 6 7 8 9 10 11 |
# Author: Huahua class Solution: def reformatDate(self, date: str) -> str: m = {"Jan": "01", "Feb": "02", "Mar": "03", "Apr": "04", "May": "05", "Jun": "06", "Jul": "07", "Aug": "08", "Sep": "09", "Oct": "10", "Nov": "11", "Dec": "12"} items = date.split(" ") day = items[0][:-2] if len(day) == 1: day = "0" + day return items[2] + "-" + m[items[1]] + "-" + day |
请尊重作者的劳动成果,转载请注明出处!花花保留对文章/视频的所有权利。
如果您喜欢这篇文章/视频,欢迎您捐赠花花。
If you like my articles / videos, donations are welcome.
Be First to Comment