日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

算法創(chuàng)作|得到的最晚有效時間問題解決方法

 算法與編程之美 2021-03-28

問題描述

你一個字符串 time ,格式為 hh:mm(小時:分鐘),其中某幾位數(shù)字被隱藏(用 ? 表示)。有效的時間為 00:00 23:59 之間的所有時間,包括 00:00 23:59 。替換 time 中隱藏的數(shù)字,返回你可以得到的最晚有效時間。

輸入:time = 2?:?0”

輸出:”23:50

解決方案

按照順序逐位判斷

對于小時的第一位如果為?,則有兩種不同的情況:

小時的第二位在幾種情況中 ('0','1','2','3',) ,則小時第一位取2

小時的第二位不在幾種情況中,則小時的第一位只能取 1

對于小時的第二位如果為 ? 也有兩不同的情況:

小時的第一位在此情況中('0','1'),則小時的第二位取9為最晚時間

若小時的第一位為2,則此時小時的第二位取3為最晚時間

對于分鐘的二位如果為??,則第一位取5第二位取9

代碼清單 1替換 time 中隱藏的數(shù)字,返回你可以得到的最晚有效時間。

class  Solution:                   

     def maximumTime(self, time: str) -> str:

         time = list(time)

         if time[0] == '?':

            time[0] = '2' if time[1] in  ('0','1','2','3','?') else '1'

         if time[1] == '?':

            time[1] = '9' if time[0] in  ('0','1') else '3'

         if time[3] == '?': time[3] = '5'

         if time[4] == '?': time[4] = '9'

         return "".join(time)

結(jié)語

通過討論有幾種情況來完成這道題,因為此題可能出現(xiàn)的種類不多,便可以只用這種方法,若出現(xiàn)情況較多的題目,這種方法便不可行,需要一種更簡便更直接的方法解決此類題。

實習(xí)編輯:王曉姣

作者:查萌雨、趙柔、岳進(jìn)

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多