插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
坚持不懈,越努力越幸运,大家一起学习鸭~~~
3妹:小呀么小二郎呀, 背着那书包上学堂。
2哥:不怕太阳晒, 不怕那风雨打。
3妹:就怕老师说我懒呀,没有学问,无脸见爹娘。
2哥:3妹, 周杰伦又发新专辑了,you know? 你的曲库该更新一下了。
3妹:yeah, I know. 我可是听着我伦的歌长大的。
2哥:是的, 记得那时还是上高中的时候……
3妹:2哥,又开始回忆你的青春岁月了,哈哈
2哥:3妹也会取笑人了,不跟你说了,我继续做题了。
题目:
给你一个字符串 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”
提示:
给定日期保证是合法的,所以不需要处理异常输入。
思路:
模拟, 注意月份和天 要按照01,02而不是1,2的格式;
java代码:
class Solution {
public String reformatDate(String date) {
String[] months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
Map<String, Integer> s2month = new HashMap<String, Integer>();
for (int i = 1; i <= 12; i++) {
s2month.put(months[i - 1], i);
}
String[] array = date.split(" ");
String year = array[2];
int month = s2month.get(array[1]);
int day = Integer.parseInt(array[0].substring(0, array[0].length() - 2));
return String.format("%s-%02d-%02d", year, month, day);
}
}