Leetcode 1281. Subtract the Product and Sum of Digits of an Integer
Given an integer number `n`, return the difference between the product of its digits and the sum of its digits. Example 1: Input: n = 234, Output: 15 Product of digits = 2 _ 3 _ 4 = 24
Description
Given an integer number n
, return the difference between the product of its digits and the sum of its digits.
Example 1:
Input: n = 234 Output: 15
- Product of digits = 2 _ 3 _ 4 = 24
Sum of digits = 2 + 3 + 4 = 9
Result = 24 - 9 = 15
Example 2:
Input: n = 4421 Output: 21
- Product of digits = 4 _ 4 _ 2 * 1 = 32
Sum of digits = 4 + 4 + 2 + 1 = 11
Result = 32 - 11 = 21
Constraints:
1 <= n <= 10^5
Solution
1
2
3
4
5
6
7
8
9
10
class Solution:
# Iteration
# Time Complexity: BigO(N)
# Space Complexity: BigO(1)
def subtractProductAndSum(self, n: int) -> int:
pod, sod = 1, 0
for num in str(n):
pod *= int(num)
sod += int(num)
return pod - sod
- functools.reduce(function, iterable[, initializer]):
reduce((lambda x, y: x * y), map(int, str(n)))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* Iteration
* Time Complexity: BigO(N)
* Space Complexity: BigO(1)
*/
function subtractProductAndSum(n: number): number {
const nStr = n.toString();
let pod = 1;
let sod = 0;
for (const ns of nStr) {
pod *= Number(ns);
sod += Number(ns);
}
return pod - sod;
}
- Array.prototype.reduce():
reduce((acc, cur) => (acc *= Number(cur)), 1)
This post is licensed under CC BY 4.0 by the author.