Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 숨겨진 숫자를 대체하여 최신 유효 시간을 찾는 프로그램

<시간/>

hh:mm 형식의 시간을 나타내는 문자열 s가 있다고 가정합니다. s의 일부 숫자는 숨겨져 있습니다(?로 표시됨). 24시간제를 고려하면 유효한 시간은 00:00~23:59입니다. 숨겨진 숫자를 교체하여 시간에서 얻을 수 있는 최신 유효 시간을 찾아야 합니다.

따라서 입력이 s="1?:?5"와 같으면 숫자 '2'로 시작하는 최신 시간이 23이고 숫자 '0'으로 끝나는 최신 분이 13:55가 됩니다. 50.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • ans :=새 목록

  • max_time :=['2','3',':','5','9']

  • max_time[0] <'2'이면

    • max_time[1] :='9'

  • '9'>=max_time[1]> '3'이면

    • max_time[0] :='1'

  • (max_time, s)의 각 쌍(mx, digit)에 대해 수행

    • 숫자가 한 자리인 경우

      • ans의 끝에 숫자 삽입

    • 그렇지 않으면

      • ans의 끝에 mx 삽입

  • ans에 있는 문자를 결합하고 반환

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(s):
   ans = []
   max_time = ['2','3',':','5','9']
   if max_time[0] < '2':
      max_time[1] = '9'
   if '9' >= max_time[1] > '3':
      max_time[0] = '1'
   for mx,digit in zip(max_time,s):
      if digit.isdigit():
         ans.append(digit)
      else:
         ans.append(mx)
   return ''.join(ans)

s= "1?:?5"
print(solve(s))

입력

"1?:?5"

출력

13:55