Given two non-negative integers `num1` and `num2` represented as strings, return the product of `num1` and `num2`, also represented as a string. **Note:** You must not use any built-in BigInteger library or convert the inputs to integer directly. **Example 1:** Input: `num1 = "2", num2 = "3"` Output: `"6"` **Example 2:** Input: `num1 = "123", num2 = "456"` Output: `"56088"`
Digit-by-Digit Simulation (P1/P2 Accumulator)
When multiplying a digit at index `i` of `num1` and a digit at index `j` of `num2`, the product contributes to positions `i+j` (carry) and `i+j+1` (unit) in an accumulator array of size `len1 + len2`.