मान लीजिए कि हमारे पास एक स्ट्रिंग है जो 24 घंटे के प्रारूप में एचएच:एमएम के रूप में एक समय का प्रतिनिधित्व करती है ताकि एचएच 0 से 23 की सीमा में हो और एमएम 0 से 59 की सीमा में हो, हमें अगला निकटतम समय खोजना होगा जो एक है पैलिंड्रोम जब एक स्ट्रिंग के रूप में पढ़ा जाता है। अगर ऐसी कोई स्ट्रिंग नहीं है, तो -1 लौटें।
इसलिए, यदि इनपुट "22:22" जैसा है, तो आउटपुट "23:32" होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=s का आकार
-
घंटा_स्ट्रिंग :=s का सबस्ट्रिंग [सूचकांक 0 से 2 तक]
-
मिनट:=s का सबस्ट्रिंग [सूचकांक 3 से 5 तक] और इसे पूर्णांक में बदलें
-
rev_hour :=घंटा_स्ट्रिंग को उलट दें और इसे संख्या में बदलें
-
rev_hr_str :=घंटा_स्ट्रिंग का उलटा
-
h :=hour_string पूर्णांक के रूप में
-
अस्थायी:=रिक्त स्ट्रिंग, रेस:=रिक्त स्ट्रिंग
-
यदि h 23 है और मिनट>=32 है, तो
-
रेस :=-1
-
-
अन्यथा जब मिनट
-
अगर एच <10, तो
-
अस्थायी:="0"
-
-
अस्थायी:=अस्थायी रूप से एच
-
अगर rev_hour <10, तो
-
res:=res concatenate temp concatenate ":0" concatenate rev_hr_str
-
-
अन्यथा,
-
res:=res concatenate temp concatenate ":" concatenate rev_hr_str
-
-
-
अन्यथा,
-
एच:=एच + 1
-
rev_hr_str :=h का स्ट्रिंग के रूप में उल्टा करना
-
Rev_hour :=h का उल्टा
-
अगर एच <10, तो
-
अस्थायी:="0"
-
-
अस्थायी:=अस्थायी रूप से एच
-
अगर rev_hour <10, तो
-
res:=res concatenate temp concatenate ":0" concatenate rev_hr_str
-
-
अन्यथा,
-
res:=res concatenate temp concatenate ":" concatenate rev_hr_str
-
-
-
रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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