Implement a function that takes numbers a and b in string form and returns the result of a * b as a string.
The input can only contain digits [0-9] or a negative sign, and it can represent arbitrarily large numbers that may not fit in any primitive data type.
You must implement the multiplication algorithm without using any big number library or language built-in feature.
You do not need to worry about invalid input such as letters in the string, leading zeroes, etc.
This problem asks you to multiply two arbitrarily large integers given as strings, so you cannot rely on built-in numeric types or big-number libraries. The intended solution is to simulate grade-school multiplication with an array of digits, accumulate partial products by position, handle carry carefully, and then convert the result back to a string. A correct solution also needs to manage the sign of the result and strip any leading zeros.