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

Pythonでの連続した数字の最大の製品


numとkの2つの数値があるとすると、num内のk個の連続した桁の最大の積を見つける必要があります。 numは>=k桁であることが保証されていることに注意する必要があります。

したがって、入力がnum=52689762およびk=4の場合、出力は3024になり、4つの連続する桁の最大積は(8 * 9 * 7 * 6)=3024になります。

これを解決するには、次の手順に従います-

  • 最大:=0
  • cand:=1
  • while(num / 10の商)^(k-1)> 0、do
    • 桁:=(数字の最後の桁)^ k
    • cand:=1
    • 数字>0の場合、実行
      • cand:=cand *(digits mod 10)
      • candが0と同じ場合、
        • ループから抜け出す
      • 桁数:=桁数/ 10
    • 最大:=最大および率直な最大値
    • num:=nums/10の商
  • 最大の返品

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

class Solution:
   def solve(self, num, k):
      largest = 0
      while num // 10 ** (k - 1) > 0:
         digits = num % 10 ** k
         cand = 1
         while digits > 0:
            cand *= digits % 10
            if cand == 0:
               break
               digits //= 10
               largest = max(largest, cand)
               num //= 10
      return largest
ob = Solution()
num = 52689762
k = 4
print(ob.solve(num,k))

入力

52689762, 4

出力

3024

  1. Pythonで最大の三角形の領域

    平面上の点のリストがあるとします。 3つの点で形成できる最大の三角形の領域を見つける必要があります。 したがって、入力が[[0,0]、[0,1]、[1,0]、[0,2]、[2,0]]の場合、出力は2になります。 これを解決するには、次の手順に従います- res:=0 N:=ポイントリストのサイズ 0からN-2の範囲のiの場合、do i +1からN-1の範囲のjの場合、do i + 2からNの範囲のkについては、 (x1、y1):=points [i]、 (x2、y2):=points [j]、 (x3、y3):=ポイント[k] res:=resの最大値、0.5 *

  2. Pythonのヒストグラムで最大の長方形

    ヒストグラムの高さを表す整数配列が1つあるとします。各バーには単位幅があります。次のように最大面積の長方形を見つける必要があります- これを解決するには、次の手順に従います- スタックを作成し、i:=0、ans:=0を設定します <高さのサイズなら スタックの要素が0であるか、スタックの最上位要素の高さが<=height [i]の場合、 iをスタックに挿入し、iを1増やします それ以外の場合- x:=スタックの最上位要素、スタックから削除します。 height:=heights [x] temp:=height *(i * stac