The Uber Drivers app receives text containing driver-facing labels and messages. Given a text string and an array of target substrings, find every occurrence of each target and capitalize its first character while preserving the remaining characters.
When matches overlap, apply these rules: process the text from left to right, choose the longest matching target at the current position, replace it, then continue after the replacement. Matching is case-sensitive. Duplicate targets should behave like one target. Empty targets are not included.
Implement capitalize_substrings(text, patterns).
text, a string of ASCII letters, digits, spaces, and punctuation; patterns, an array of non-empty ASCII strings.def capitalize_substrings(text, patterns):