Text and arrays both have order, but they expose different APIs. A String has length() and transformation methods; an array has a length field and indexed elements. Keep those distinctions visible while solving these tasks. Each prompt states whether you should preserve spaces, compare case sensitively, keep an original row or sum every grid cell.
Start with the empty result you want, then decide how each input value changes it. That approach handles empty inputs without inventing special answers. When building output text, test one entry and several entries to check separators. For copied arrays, return both the original values and the adjusted copy so the checker can observe whether an alias changed the original. A ragged grid needs each row's own traversal.