小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

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

問題描述

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

輸入:time = 2?:?0”

輸出:”23:50

解決方案

按照順序逐位判斷

對(duì)于小時(shí)的第一位如果為?,則有兩種不同的情況:

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

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

對(duì)于小時(shí)的第二位如果為 ? 也有兩不同的情況:

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

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

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

代碼清單 1替換 time 中隱藏的數(shù)字,返回你可以得到的最晚有效時(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é)語

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

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

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多