在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
      猜你喜欢