Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 연속 요소 최대 곱

<시간/>

Python에는 데이터를 조작할 수 있는 훌륭한 라이브러리가 있습니다. 큰 문자열의 일부인 두 개의 연속 숫자의 최대 곱을 찾아야 할 필요가 있을 수 있습니다. 이 기사에서 우리는 그것을 달성하는 방법을 볼 것입니다.

zip 및 최대값 포함

문자열을 목록으로 변환합니다. 그런 다음 슬라이싱을 사용하여 연속 요소에서 쌍을 만듭니다. *를 적용하면 쌍을 곱한 다음 각 쌍에서 곱한 결과에서 최대값을 취합니다.

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