# Solving Leetcode Interviews in Seconds with AI: Reformat Date


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1507" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> 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.  

	# Explanation
	*   **Parse the input string:** Split the input date string into its day, month, and year components.
*   **Convert month and day:** Use a dictionary to map month names to their corresponding numerical values. Extract the numerical value of the day by removing the suffix ("st", "nd", "rd", "th").
*   **Format the output:** Construct the output string in the desired YYYY-MM-DD format using f-strings or string formatting.

*   **Runtime Complexity:** O(1), because the operations are independent of the input size and the month mapping is of constant size. **Storage Complexity:** O(1), because the month mapping is of constant size and only a few variables are used.

	
	# Code
	```python
	def reformatDate(date):
    months = {
        "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, month, year = date.split()
    day = day[:-2]  # Remove "st", "nd", "rd", "th"
    if len(day) == 1:
        day = "0" + day
    return f"{year}-{months[month]}-{day}"
	```
			
