Pythonで特定の範囲から数字の出現を見つけるプログラム
2つの正の整数nとdが提供されたとします。ここで、dは0から9までの数字です。数字dが1から9までの整数の中に何回現れるかを決定する必要があります。およびn。
したがって、入力がn =45、d =5の場合、出力は5になります。
これらの番号の数字は5です:[5、15、25、35、45]。
これを解決するには、次の手順に従います-
-
関数solve()を定義します。これは入力としてnとdを取ります。
-
n <0の場合、
-
0を返す
-
-
k:=(n / 10)−1のフロア
-
ans:=resolve(k、d)* 10 + k + 1
-
dが0と同じ場合、
-
ans:=ans − 1
-
-
m:=(n / 10)の床* 10
-
m <=nの場合、実行
-
ans:=ans+mの文字列表現におけるdの文字列表現の出現回数。
-
m:=m + 1
-
-
ansを返す
-
main関数から、関数-
を呼び出します。 -
値:=resolve(n、d)
-
print(value)
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, n, d): if n < 0: return 0 k = n // 10 − 1 ans = self.solve(k, d) * 10 + k + 1 if d == 0: ans −= 1 m = n // 10 * 10 while m <= n: ans += str(m).count(str(d)) m += 1 return ans ob = Solution() print(ob.solve(45,5))
入力
45, 5
出力
5
-
グラフがPythonのすべての人によってトラバース可能かどうかを確認するプログラム
0からn-1までの番号が付けられたn個の頂点を含むグラフが与えられたとします。グラフは無向であり、各エッジには重みがあります。グラフには3種類の重みを設定でき、各重みは特定のタスクを示します。グラフをトラバースできるのは、ジャックとケーシーの2人です。エッジの重みが1の場合、ジャックはグラフをトラバースできます。重みが2の場合、ケーシーはグラフをトラバースできます。エッジの重みが3の場合、両方がグラフをトラバースできます。グラフを両方でトラバース可能にするために必要なエッジをすべて削除する必要があります。ジャックとケーシー。グラフをトラバース可能にするために削除するエッジの数を返します。トラバ
-
Pythonで与えられた方程式a+b=cから欠落している値を見つけます
次の形式の方程式が1つあるとします。a+b=c、ここでa、b、またはcのいずれかの項が欠落しています。足りないものを見つけなければなりません。 つまり、入力が次のような場合は? + 4 =9の場合、出力は5になります これを解決するには、次の手順に従います- 文字列からすべての空白スペースを削除し、(+および=をコンマ、)に変更します elements:=文字列をコンマで区切って分割した要素のリスト idx:=0 0から要素のサイズまでの範囲のiについては、次のようにします elements [i]が数値でない場合、 idx:=i ループから出て