网站首页 > java教程 正文
在leetcode(https://leetcode-cn.com/)上看到一道有趣的算法题:
给你一个字符串 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"
提示:
- 给定日期保证是合法的,所以不需要处理异常输入。
这样的题你会怎么用java实现呢?
分享一下我的解题思路:
public String reformatDate(String date) {
String[] array = date.split(" ");
StringBuffer buffer = new StringBuffer();
buffer.append(array[array.length - 1])
.append("-")
.append(getMonth(array[1]))
.append("-")
.append(getDay(array[0]));
return buffer.toString();
}
private String getMonth(String month) {
if (month.equals("Jan")) {
return "01";
} else if (month.equals("Feb")) {
return "02";
} else if (month.equals("Mar")) {
return "03";
} else if (month.equals("Apr")) {
return "04";
} else if (month.equals("May")) {
return "05";
} else if (month.equals("Jun")) {
return "06";
} else if (month.equals("Jul")) {
return "07";
} else if (month.equals("Aug")) {
return "08";
} else if (month.equals("Sep")) {
return "09";
} else if (month.equals("Oct")) {
return "10";
} else if (month.equals("Nov")) {
return "11";
} else if (month.equals("Dec")) {
return "12";
} else {
return month;
}
}
private String getDay(String day) {
day = day.substring(0, day.length() - 2);
return day.length() == 1 ? "0" + day : day;
}
结果:
输入:"20th Oct 2052"
输出:"2052-10-20"
leetcode上对该答案的分析如下:
110 / 110 个通过测试用例
状态:通过
执行用时: 2 ms
内存消耗: 36.9 MB
执行用时分布图表
执行消耗内存分布图表
大家有更好的解题思路吗?欢迎在评论区作答哈~
猜你喜欢
- 2024-10-28 JDK8 新特性之新的日期&时间API,一篇讲清楚!
- 2024-10-28 日期时间API之TemporalAdjusters与TemporalAdjuster
- 2024-10-28 String为什么不可变(string 为什么不可变)
- 2024-10-28 四十五、Date与Calendar类在日期与时间处理中的关键作用
- 2024-10-28 深入解析Java中的String.format():格式化输出的艺术
- 2024-10-28 JAVA开发中使用Duration类设置时间长度
- 2024-10-28 DATE #4、Java操作日期时间-④.自定义时间调节器-放假通知
- 2024-10-28 Java学习笔记:String字符串格式化
- 2024-10-28 Java 计算日期属于当月第几周(日期周计算)
- 2024-10-28 GO项目实战—Gorm格式化时间字段(mongo时间格式化)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)