給你一個字元串 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);
}
}