Python 中相鄰數字的最大乘積
假設我們有兩個數字:num 和 k,我們要在 num 中找出 k 個連續數字的最大乘積。請記住,num 肯定有 >= k 個數字。
因此,如果輸入類似 num = 52689762,k = 4,則輸出將為 3024,4 個連續數字的最大乘積為 (8*9*7*6) = 3024。
為了解決這個問題,我們將按照以下步驟操作:
- largest := 0
- cand := 1
- while (num/10)^(k-1) > 0,執行
- digits := (nums 的最後一位數字)^k
- cand := 1
- while digits > 0,執行
- cand := cand * (digits mod 10)
- 如果 cand 為 0,則
- 退出迴圈
- digits := digits / 10 的商
- largest := largest 和 cand的最大值
- num := nums / 10 的商
- 返回 largest
讓我們看看以下實現,以便更好地理解:
示例
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
廣告
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP