zentan66 / daily-coding

日常手写算法,编程题
0 stars 0 forks source link

【⭐️】LeetCode-替换隐藏数字得到的最晚时间 #41

Open zentan66 opened 3 years ago

zentan66 commented 3 years ago

给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。

有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。

替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。

zentan66 commented 3 years ago

编码

var maximumTime = function (time) {
  time = time.split('')
  for (let i = 0, n = time.length; i < n; i++) {
    if (time[i] === '?') {
      switch (i) {
        case 0:
          time[i] = time[1] !== '?' && parseInt(time[1]) > 3 ? 1 : 2
          break
        case 1:
          time[i] = parseInt(time[0]) === 2 ? 3 : 9
          break
        case 3:
          time[i] = 5
          break
        case 4:
          time[i] = 9
          break
      }
    }
  }
  return time.join('')
}