मान लीजिए हमारे पास एक स्ट्रिंग s है जो 24 घंटे के प्रारूप में समय को HH:MM के रूप में दर्शाती है, जहां HH 0 से 23 की सीमा में होगा और MM 0 से 59 की सीमा में होगा। हमें अगला निकटतम समय ढूंढना है जो एक स्ट्रिंग के रूप में पढ़े जाने पर पालिंड्रोम हो। यदि ऐसा कोई स्ट्रिंग नहीं है, तो -1 लौटाएं।
इसलिए, यदि इनपुट "22:22" है, तो आउटपुट "23:32" होगा।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
n := len(s)hour_string := s[0:2]minute := int(s[3:5])rev_hour := int(hour_string[::-1])rev_hr_str := hour_string[::-1]h := int(hour_string)temp := "",res := ""- यदि
h == 23औरminute >= 32, तोres := "-1" - अन्यथा यदि
minute < rev_hour:- यदि
h < 10, तोtemp := "0" temp := temp + str(h)- यदि
rev_hour < 10, तोres := res + temp + ":0" + rev_hr_str - अन्यथा,
res := res + temp + ":" + rev_hr_str
- यदि
- अन्यथा:
h := h + 1rev_hr_str := str(h)[::-1]rev_hour := int(rev_hr_str)- यदि
h < 10, तोtemp := "0" temp := temp + str(h)- यदि
rev_hour < 10, तोres := res + temp + ":0" + rev_hr_str - अन्यथा,
res := res + temp + ":" + rev_hr_str
resलौटाएं।
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def get_next_palindrome_time(s):
n = len(s)
hour_string = s[0:2]
minute = int(s[3:5])
rev_hour = int(hour_string[::-1])
rev_hr_str = hour_string[::-1]
h = int(hour_string)
temp = ""
res = ""
if h == 23 and minute >= 32:
res = "-1"
elif minute < rev_hour:
if h < 10:
temp = "0"
temp = temp + str(h)
if rev_hour < 10:
res = res + temp + ":0" + rev_hr_str
else:
res = res + temp + ":" + rev_hr_str
else:
h += 1
rev_hr_str = str(h)[::-1]
rev_hour = int(rev_hr_str)
if h < 10:
temp = "0"
temp = temp + str(h)
if rev_hour < 10:
res = res + temp + ":0" + rev_hr_str
else:
res = res + temp + ":" + rev_hr_str
return res
s = "22:22"
print(get_next_palindrome_time(s))
इनपुट
"22:22"
आउटपुट
23:32