Post

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
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;
}
This post is licensed under CC BY 4.0 by the author.