সমস্যা বিবরণ
২৪ ঘণ্টার ফরম্যাটে HH:MM আকারে একটি সময় স্ট্রিং দেওয়া আছে। এর পরের সবচেয়ে কাছের প্যালিনড্রোমিক সময় (স্ট্রিং হিসেবে পড়লে প্যালিনড্রোম) বের করতে হবে। না থাকলে -1 রিটার্ন করুন।
উদাহরণস্বরূপ, ইনপুট "22:22" হলে আউটপুট হবে "23:32"।
সমাধানের ধাপসমূহ
- ঘণ্টা স্ট্রিং
hour_string = s[0:2]এবং মিনিটminute = int(s[3:5])বের করুন। - ঘণ্টা স্ট্রিং উল্টে দিয়ে
rev_hour(ইন্টিজার) এবংrev_hr_strবানান। - যদি ঘণ্টা ২৩ এবং মিনিট >= ৩২ হয়, রিটার্ন
-1। - যদি মিনিট <
rev_hourহয়, তবে একই ঘণ্টায়rev_hourমিনিট ব্যবহার করুন। - অন্যথায় ঘণ্টা ১ বাড়িয়ে নতুন ঘণ্টার রিভার্স দিয়ে মিনিট বানান।
- ফরম্যাট ঠিক করে রিটার্ন করুন।
পাইথন কোড উদাহরণ
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 += str(h)
if rev_hour < 10:
res = temp + ":0" + rev_hr_str
else:
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 += str(h)
if rev_hour < 10:
res = temp + ":0" + rev_hr_str
else:
res = temp + ":" + rev_hr_str
return res
s = "22:22"
print(get_next_palindrome_time(s)) # আউটপুট: 23:32
ইনপুট
"22:22"
আউটপুট
23:32