天天看點

替換隐藏數字得到的最晚時間java

給你一個字元串 time ,格式為 hh:mm(小時:分鐘),其中某幾位數字被隐藏(用 ? 表示)。

有效的時間為 00:00 到 23:59 之間的所有時間,包括 00:00 和 23:59 。

替換 time 中隐藏的數字,傳回你可以得到的最晚有效時間。

示例 1:

輸入:time = “2?:?0”

輸出:“23:50”

解釋:以數字 ‘2’ 開頭的最晚一小時是 23 ,以 ‘0’ 結尾的最晚一分鐘是 50 。

示例 2:

輸入:time = “0?:3?”

輸出:“09:39”

示例 3:

輸入:time = “1?:22”

輸出:“19:22”

提示:

time 的格式為 hh:mm

題目資料保證你可以由輸入的字元串生成有效的時間

來源:力扣(LeetCode)

連結:https://leetcode-cn.com/problems/latest-time-by-replacing-hidden-digits

著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

思路:我這裡是直接ifelse列出所有可能,後面兩位好判斷,第三位最大是5,第四位最大是9,隻有一種特殊情況就是就是第三位是6,第四位是0.前面兩位同理特殊情況是24.

class Solution {
    public String maximumTime(String time) {
        char[] arr = time.toCharArray();
        if (arr[0] == '?') {
            arr[0] = ('4' <= arr[1] && arr[1] <= '9') ? '1' : '2';
        }
        if (arr[1] == '?') {
            arr[1] = (arr[0] == '2') ? '3' : '9';
        }
        if (arr[3] == '?') {
            arr[3] = '5';
        }
        if (arr[4] == '?') {
            arr[4] = '9';
        }
        return new String(arr);
    }
}