1507. Reformat Date

复制代码
package LeetCode_1507

import java.lang.StringBuilder

/**
 * 1507. Reformat Date
 * https://leetcode.com/problems/reformat-date/description/
 *
 * Given a date string in the form Day Month Year, where:
    1.Day is in the set {"1st", "2nd", "3rd", "4th", ..., "30th", "31st"}.
    2.Month is in the set {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}.
    3.Year is in the range [1900, 2100].
Convert the date string to the format YYYY-MM-DD, where:
    1.YYYY denotes the 4 digit year.
    2.MM denotes the 2 digit month.
    3.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.
 * */
class Solution {
    fun reformatDate(date: String): String {
        val monthMaps = mapOf("Jan" to "01","Feb" to "02","Mar" to "03","Apr" to "04","May" to "05",
            "Jun" to "06","Jul" to "07","Aug" to "08","Sep" to "09","Oct" to "10","Nov" to "11","Dec" to "12")
        val list = date.split(" ")
        val sb = StringBuilder()
        for (i in list.size-1 downTo 0){
            when(i){
                2->sb.append(list.get(i)).append("-")
                1->sb.append(monthMaps.get(list.get(i))).append("-")
                0->sb.append(setDay(list.get(i)))
            }
        }
        println(sb.toString())
        return sb.toString()
    }

    private fun setDay(str:String):String{
        val sb = StringBuilder()
        val day = str.replace("st","").replace("nd","").replace("rd","").replace("th","")
        if (day.toInt()<10){
            sb.append("0")
        }
        sb.append(day)
        return sb.toString()
    }
}
复制代码

 

posted @   johnny_zhao  阅读(187)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示