Pythonで数値から最小桁を削除して形成された最大の立方体を見つける
数がNであるとすると、数から最小桁(おそらく0)を削除することによって生成できる最大の完全な立方体を決定する必要があります。与えられた数字から任意の数字を削除して、ターゲットに到達することができます。私たちが知っているように、ある整数Mに対してN =M ^ 3の場合、数Nは完全な立方体と呼ばれます。
したがって、入力が806のような場合、出力は8になります。これは、数値から0と6を削除できるため、8になります。これは、2の完全な立方体です。
これを解決するには、次の手順に従います-
- 関数preProcess()を定義します。これにはnがかかります
- temp_cubes:=新しいリスト
- 範囲1からn^(1/3)の上限までのiについては、
- キューブ=i^ 3
- cubeString:=文字列としての立方体
- temp_cubesの最後にcubeStringを挿入します
- temp_cubesを返す
- 関数solve()を定義します。これにはnum、temp_cubesが必要です
- リバースtemp_cubes
- totalCubes:=temp_cubesのサイズ
- 0からtotalCubesの範囲のiについては、
- temp:=temp_cubes [i]
- DigitsInCube:=一時的なサイズ
- インデックス:=0
- DigitsInNumber:=numのサイズ
- 0からdigitsInNumberの範囲のjの場合、do
- num[j]がtemp[index]と同じ場合、
- index:=index + 1
- DigitsInCubeがインデックスと同じ場合、
- リターン温度
- num[j]がtemp[index]と同じ場合、
- 「不可能」を返す
- メソッドから次の手順を実行します-
- temp_cubes:=preProcess(n)
- num:=n as string
- ans:=solution(num、temp_cubes)
- 回答を返す
例
理解を深めるために、次の実装を見てみましょう-
import math def preProcess(n): temp_cubes = list() for i in range(1, math.ceil(n**(1. / 3.))): cube = i**3 cubeString = str(cube) temp_cubes.append(cubeString) return temp_cubes def solve(num,temp_cubes): temp_cubes = temp_cubes[::-1] totalCubes = len(temp_cubes) for i in range(totalCubes): temp = temp_cubes[i] digitsInCube = len(temp) index = 0 digitsInNumber = len(num) for j in range(digitsInNumber): if (num[j] == temp[index]): index += 1 if (digitsInCube == index): return temp return "Not Possible" def getLargestCube(n): temp_cubes = preProcess(n) num = str(n) ans = solve(num, temp_cubes) return ans n = 806 print(getLargestCube(n) )
入力
806
出力
8
-
Pythonでのロードトリップでの国際旅行の最小数を見つけるためのプログラム
さまざまな国のさまざまな都市を訪問するロードトリップを計画する必要があるとします。道路Rのリストがあり、各要素は(x、y、cost)として記述されています。 xは道路の出発都市を示し、yは道路の目的都市を示し、costはその道路を移動するコストを示します。また、各要素が国であり、要素にその国の都市が含まれているリスト「C」もあります。これで、出発地の都市「s」と目的地の都市「e」もあり、出発地の都市から目的地の都市に移動したいと考えています。これらすべての情報を考慮して、旅行を完了するために必要な国際旅行の最小数と、旅行の総旅行費用を確認する必要があります。これら2つの値を出力として出力する必
-
グラフ内の最大のクリークの最小サイズを見つけるプログラム(Python)
グラフが与えられ、グラフ内の最大のクリークの最小サイズを見つけるように求められたとします。グラフのクリークは、頂点のすべてのペアが隣接している、つまり頂点のすべてのペアの間にエッジが存在するグラフのサブセットです。グラフ内で最大のクリークを見つけることは多項式時間では不可能であるため、小さなグラフのノードとエッジの数を考えると、グラフ内の最大のクリークを見つける必要があります。 したがって、入力がノード=4、エッジ=4のような場合。その場合、出力は2になります。 上のグラフでは、クリークの最大サイズは2です。 これを解決するには、次の手順に従います- 関数helper()を定義し