Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで非表示の数字を置き換えることにより、最新の有効時間を見つけるプログラム


文字列sがhh:mmの形式で時間を表すと仮定します。 sの一部の数字は非表示になっています(?で表されます)。 24時間制を考慮すると、有効な時刻は00:00から23:59の間です。非表示の数字を置き換えることにより、時間から取得できる最新の有効時間を見つける必要があります。

したがって、入力がs ="1?:?5"の場合、数字「2」で始まる最新の時間は23で、数字「0」で終わる最後の分は13:55であるため、出力は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、数字)に対して、実行

    • 数字が1桁の場合、

      • ansの最後に数字を挿入

    • それ以外の場合

      • ansの最後にmxを挿入します

  • ansに存在する文字を結合して戻る

例(Python)

理解を深めるために、次の実装を見てみましょう-

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

  1. Pythonでポリゴンの領域を見つけるプログラム

    順序付けられたポイントのリストが2D平面上の単純なポリゴンエンドポイントを表すとします。このポリゴンの領域を見つける必要があります。 したがって、入力がpoints =[(0、0)、(0,5)、(3、5)、(3,0)]のような場合、出力は15になります。 これを解決するには、次の手順に従います- 関数getInfo()を定義します。これにはx1、y1、x2、y2が必要です return x1 * y2-y1 * x2 メインの方法から、次の手順を実行します N:=ポイントのサイズ (firstx、firsty):=points [0] (prevx、prevy):=(fir

  2. Pythonでポリゴンの周囲を見つけるプログラム

    順序付けられたポイントのリストが2D平面上の単純なポリゴンエンドポイントを表すとします。このポリゴンの周囲を見つける必要があります。 したがって、入力がpoints =[(0、0)、(0,5)、(3、5)、(3,0)]のような場合、出力は16になります。 2つの辺の長さは3で、2つの辺の長さは5なので、2 * 5 + 2 * 3=16です。 これを解決するには、次の手順に従います- 関数getInfo()を定義します。これにはx1、y1、x2、y2が必要です ユークリッド距離である((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))の平方根を返します (x1、y1)