मान लीजिए हमारे पास एक स्ट्रिंग s है जो hh:mm फॉर्मेट में समय दर्शाती है। s के कुछ अंक छिपे हुए हैं ('?' द्वारा दर्शाए गए)। 24 घंटे की घड़ी को ध्यान में रखते हुए, वैध समय 00:00 और 23:59 के बीच होते हैं। हमें छिपे हुए अंकों को बदलकर नवीनतम वैध समय ढूंढना है जो हम प्राप्त कर सकते हैं।
इसलिए, यदि इनपुट है: s = "1?:?5", तो आउटपुट 13:55 होगा क्योंकि '1' से शुरू होने वाला नवीनतम घंटा 13 है और '5' से समाप्त होने वाला नवीनतम मिनट 55 है।
हल करने के चरण
- ans := एक नई सूची
- 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, digit) के लिए:
- यदि digit एक अंक है, तो ans के अंत में digit डालें
- अन्यथा, ans के अंत में mx डालें
- ans में मौजूद कैरेक्टर्स को जोड़कर वापस करें
उदाहरण (Python)
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