1. 程式人生 > 其它 >leetcode 1736. 替換隱藏數字得到的最晚時間

leetcode 1736. 替換隱藏數字得到的最晚時間

給你一個字串 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
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

因為是標準格式,所以一共就四個有效數字,其索引位置分別為0,1,3,4.

用變數 a,b,c,d分別獲取四個值。

若a為? 則根據b的值來判斷a的值。

同理,根據a的值來判斷b的值。

c和d都是獨立存在,最大分別為 5 和 9.

    public String maximumTime(String time) {

        char a = time.charAt(0);
        
char b = time.charAt(1); char c = time.charAt(3); char d = time.charAt(4); if (a == '?') { if (b == '?') { a = '2'; b = '3'; } else if (b < '4') { a = '2'; } else { a = '1'; } }
else { if (b == '?') { if (a < '2') { b = '9'; } else { b = '3'; } } } if (c == '?') { c = '5'; } if (d == '?') { d = '9'; } return String.valueOf(new char[]{a, b, ':',c, d}); }