ধরুন আমাদের কাছে একটি স্ট্রিং s আছে যা HH:MM হিসাবে 24 ঘন্টা বিন্যাসে একটি সময়কে উপস্থাপন করে যাতে HH 0 থেকে 23 রেঞ্জে এবং MM 0 থেকে 59 রেঞ্জের মধ্যে থাকবে, আমাদের পরবর্তী নিকটতম সময়টি খুঁজে বের করতে হবে যা হল একটি স্ট্রিং হিসাবে পড়া যখন palindrome. যদি এরকম কোন স্ট্রিং না থাকে, তাহলে -1 রিটার্ন করুন।
সুতরাং, ইনপুট যদি "22:22" এর মত হয়, তাহলে আউটপুট হবে "23:32"।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
n :=s
এর আকার -
hour_string :=s এর সাবস্ট্রিং [সূচী 0 থেকে 2]
-
মিনিট :=s এর সাবস্ট্রিং [সূচী 3 থেকে 5] এবং এটিকে পূর্ণসংখ্যাতে রূপান্তর করুন
-
rev_hour :=hour_string বিপরীত করুন এবং এটিকে সংখ্যায় রূপান্তর করুন
-
rev_hr_str :=hour_string এর বিপরীত
-
h :=hour_string পূর্ণসংখ্যা হিসাবে
-
temp :=ফাঁকা স্ট্রিং, res :=ফাঁকা স্ট্রিং
-
যদি h 23 এবং মিনিট>=32 হয়, তাহলে
-
res :=-1
-
-
অন্যথায় যখন মিনিট
-
যদি h <10, তাহলে
-
temp :="0"
-
-
temp :=temp concatenate h
-
যদি rev_hour <10 হয়, তাহলে
-
res :=res concatenate temp concatenate ":0" concatenate rev_hr_str
-
-
অন্যথায়,
-
res :=res concatenate temp concatenate ":" concatenate rev_hr_str
-
-
-
অন্যথায়,
-
h :=h + 1
-
rev_hr_str :=স্ট্রিং হিসাবে h এর বিপরীত
-
rev_hour :=h
এর বিপরীত -
যদি h <10, তাহলে
-
temp :="0"
-
-
temp :=temp concatenate h
-
যদি 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