Skip to content

Latest commit

 

History

History
 
 

1507.Reformat Date

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

English Version

题目描述

给你一个字符串 date ,它的格式为 Day Month Year ,其中:

  • Day 是集合 {"1st", "2nd", "3rd", "4th", ..., "30th", "31st"} 中的一个元素。
  • Month 是集合 {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} 中的一个元素。
  • Year 的范围在 ​[1900, 2100] 之间。

请你将字符串转变为 YYYY-MM-DD 的格式,其中:

  • YYYY 表示 4 位的年份。
  • MM 表示 2 位的月份。
  • DD 表示 2 位的天数。

 

示例 1:

输入:date = "20th Oct 2052"
输出:"2052-10-20"

示例 2:

输入:date = "6th Jun 1933"
输出:"1933-06-06"

示例 3:

输入:date = "26th May 1960"
输出:"1960-05-26"

 

提示:

  • 给定日期保证是合法的,所以不需要处理异常输入。

解法

切分 date 字符串,获取对应的 year, month, day,然后拼接起来即可。

Python3

class Solution:
    def reformatDate(self, date: str) -> str:
        months = [
            "Jan",
            "Feb",
            "Mar",
            "Apr",
            "May",
            "Jun",
            "Jul",
            "Aug",
            "Sep",
            "Oct",
            "Nov",
            "Dec",
        ]
        mapper = {v: str(k + 1) for k, v in enumerate(months)}
        split = date.split(' ')
        year = split[2]
        month = mapper.get(split[1])
        day = split[0][: len(split[0]) - 2]
        return year + '-' + month.zfill(2) + '-' + day.zfill(2)

Java

class Solution {
    public String reformatDate(String date) {
        Map<String, Integer> mapper = new HashMap<>();
        String[] months
            = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
        for (int i = 0; i < months.length; ++i) {
            mapper.put(months[i], i + 1);
        }
        String[] split = date.split(" ");
        int year = Integer.parseInt(split[2]);
        int month = mapper.get(split[1]);
        int day = Integer.parseInt(split[0].substring(0, split[0].length() - 2));
        return String.format("%d-%02d-%02d", year, month, day);
    }
}

...