#2243

Calculate Digit Sum of a String

Easy
StringSimulationString ManipulationSimulation
LeetCode ↗

Approaches

Brute ForceOptimal
Complexity Comparison
Brute ForceOptimal Solution
Time
O(n²)
O(n)
Space
O(1)
O(n)
💡

Intuition

Time O(n)Space O(n)

The optimal solution follows the same logic as the brute force but focuses on minimizing unnecessary operations and string manipulations. By directly calculating the digit sums and building the new string efficiently, we achieve better performance.

⚙️

Algorithm

3 steps
  1. 1Step 1: Use a loop to process the string until its length is less than or equal to k.
  2. 2Step 2: For each iteration, create a new string to hold the digit sums.
  3. 3Step 3: Use a single pass to calculate the sums of the groups and build the new string.
solution.py8 lines
1def digit_sum(s, k):
2    while len(s) > k:
3        new_s = ''
4        for i in range(0, len(s), k):
5            group_sum = sum(int(d) for d in s[i:i+k])
6            new_s += str(group_sum)
7        s = new_s
8    return s

Complexity note: The time complexity is O(n) because we process each character in the string a limited number of times, while the space complexity is O(n) due to the new string being constructed.

  • 1The string is processed in rounds, reducing its length each time.
  • 2The digit sums are calculated for groups of size k, which can vary in the last round.

Solutions and explanations are original Tejav content. Problem titles © LeetCode — use the LeetCode button above for the full problem statement.