3754. Concatenate Non-Zero Digits and Multiply by Sum I
Description
You are given an integer n.
Form a new integer x by concatenating all the non-zero digits of n in their original order. If there are no non-zero digits, x = 0.
Let sum be the sum of digits in x.
Return an integer representing the value of x * sum.
Example 1:
Input: n = 10203004
Output: 12340
Explanation:
- The non-zero digits are 1, 2, 3, and 4. Thus,
x = 1234. - The sum of digits is
sum = 1 + 2 + 3 + 4 = 10. - Therefore, the answer is
x * sum = 1234 * 10 = 12340.
Example 2:
Input: n = 1000
Output: 1
Explanation:
- The non-zero digit is 1, so
x = 1andsum = 1. - Therefore, the answer is
x * sum = 1 * 1 = 1.
Constraints:
0 <= n <= 109
Solutions
Solution 1: Simulation
Thinking
\(n\) has few digits, so we may follow the definition directly. Peeling digits from the low end, each nonzero digit updates both the concatenated integer \(x\) and the digit sum \(s\); the answer is \(x\cdot s\).
We can simulate the required operation by processing the number digit by digit. While processing each digit, we concatenate non-zero digits to form a new integer \(x\) and calculate the digit sum \(s\). Finally, we return \(x \times s\).
The time complexity is \(O(\log n)\) and the space complexity is \(O(1)\).
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |