मान लीजिए कि हमारे पास एक स्ट्रिंग है जो hh:mm के रूप में समय का प्रतिनिधित्व करती है। s में कुछ अंक छिपे हुए हैं (द्वारा दर्शाया गया है?) 24 घंटे की घड़ी को ध्यान में रखते हुए, वैध समय 00:00 और 23:59 के बीच है। हमें छिपे हुए अंकों को बदलकर नवीनतम वैध समय खोजना होगा जो हम समय से प्राप्त कर सकते हैं।
इसलिए, यदि इनपुट s="1?:?5" जैसा है, तो आउटपुट 13:55 होगा क्योंकि अंक '2' से शुरू होने वाला नवीनतम घंटा 23 है और अंक '0' के साथ समाप्त होने वाला नवीनतम मिनट है 50.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
उत्तर :=एक नई सूची
-
max_time :=['2','3',':','5','9']
-
अगर max_time[0] <'2', तो
-
max_time[1] :='9'
-
-
अगर '9'>=max_time[1]> '3', तो
-
max_time[0] :='1'
-
-
(max_time, s) से प्रत्येक जोड़ी (mx, अंक) के लिए, करें
-
अगर अंक एक अंक है, तो
-
उत्तर के अंत में अंक डालें
-
-
अन्यथा,
-
उत्तर के अंत में mx डालें
-
-
-
उत्तर में मौजूद वर्णों से जुड़ें और वापस लौटें
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(s): ans = [] max_time = ['2','3',':','5','9'] if max_time[0] < '2': max_time[1] = '9' if '9' >= max_time[1] > '3': max_time[0] = '1' for mx,digit in zip(max_time,s): if digit.isdigit(): ans.append(digit) else: ans.append(mx) return ''.join(ans) s= "1?:?5" print(solve(s))
इनपुट
"1?:?5"
आउटपुट
13:55