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

Pythonの連続要素最大製品


Pythonには、データを操作するための優れたライブラリがあります。大きな文字列の一部である2つの連続した数値の最大積を見つける必要がある場合があります。この記事では、それを実現する方法を説明します。

zipとmaxを使用

文字列をリストに変換します。次に、スライスを使用して、連続する要素からペアを作成します。 *を適用すると、ペアを乗算し、各ペアの乗算の結果から最大値を取得します。

Astring = '5238521'
# Given string
print("Given String : ",Astring)
# Convert to list
Astring = list(Astring)
print("String converted to list:\n",Astring)
# Using max()
res = max(int(a) * int(b) for a, b in zip(Astring, Astring[1:]))
# Result
print("The maximum consecutive product is : " ,res)

出力

上記のコードを実行すると、次の結果が得られます-

Given String : 5238521
String converted to list:
['5', '2', '3', '8', '5', '2', '1']
The maximum consecutive product is : 40
>

マップと最大値付き

上記と同様のアプローチを取ります。ただし、map関数を使用して、連続する整数のペアを生成し続けます。次に、オペレーターモジュールのmul関数を使用して、このペアの数値を乗算します。最後に、max関数を適用して、結果の最大値を取得します。

from operator import mul
Astring = '5238521'
# Given string
print("Given String : ",Astring)
# Convert to list
Astring = list(Astring)
print("String converted to list:\n",Astring)
# Using max()
res = max(map(mul, map(int, Astring), map(int, Astring[1:])))
# Result
print("The maximum consecutive product is : " ,res)

出力

上記のコードを実行すると、次の結果が得られます-

Given String : 5238521
String converted to list:
['5', '2', '3', '8', '5', '2', '1']
The maximum consecutive product is : 40
>
  1. Pythonでの最大製品サブ配列

    numsという整数配列があるとすると、最大の積を持つ配列(少なくとも1つの数値を含む)内で連続するサブ配列を見つける必要があります。したがって、配列が[2,3、-2,4]の場合、連続するサブ配列[2,3]の積が最大になるため、出力は6になります。 これを解決するには、次の手順に従います- max_list:=サイズ番号のリスト、0で埋める min_list:=サイズ番号のリスト、0で埋める max_list [0]:=nums[0]およびmin_list[0]:=nums [0] 1からnumsの長さのiの場合 max_list [i] =max_list [i-1] * num

  2. Pythonでの文字列の最大長はどれくらいですか?

    文字列の最大長はプラットフォームに依存し、アドレス空間やRAMに依存します。 sysモジュールで定義されたmaxsize定数は、64ビットシステムで263-1を返します。 >>> import sys >>> sys.maxsize 9223372036854775807 プラットフォームのPy_ssize_tタイプでサポートされる最大の正の整数は、リスト、文字列、dict、およびその他の多くのコンテナが持つことができる最大サイズです。