在Python中找到回文的时间并且在给定时间之后
假设我们有一个字符串s,它以HH:MM表示24小时格式的时间,因此HH的范围是0到23,MM的范围是0到59,我们必须找到下一个最接近的时间是字符串形式的回文。如果没有这样的字符串,则返回-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
否则,当分钟<rev_hour时,则
res:=res串联temp串联“:”串联rev_hr_str
res:=res串联temp串联“:0”串联rev_hr_str
temp:=“0”
如果h<10,则
temp:=temp并置h
如果rev_hour<10,则
除此以外,
除此以外,
res:=res串联temp串联“:”串联rev_hr_str
res:=res串联temp串联“:0”串联rev_hr_str
temp:=“0”
h:=h+1
rev_hr_str:=反转h作为字符串
rev_hour:=反转h
如果h<10,则
temp:=temp并置h
如果rev_hour<10,则
除此以外,
返回资源
示例
让我们看下面的实现以更好地理解-
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