Solution: Valid Word Abbreviation
Explore how to apply the two pointers approach to determine if an abbreviation matches a given word. This lesson helps you learn to handle character matching and number-based skips efficiently while checking for invalid cases like leading zeros.
We'll cover the following...
Statement
Given a string, word, and abbreviation, abbr, return TRUE if the abbreviation matches the given string. Otherwise, return FALSE. An abbreviation can replace any non-adjacent, non-empty substrings of the original word with their lengths. Replacement lengths must not contain leading zeros.
A certain word, "calendar", can be abbreviated as follows:
"cal3ar"("cal +end[length = 3] + ar"skipping three characters"end"from the word"calendar"still matches the provided abbreviation)"c6r"("c +alenda[length = 6] + r"skipping six characters"alenda"from the word"calendar"still matches the provided abbreviation)
The word "internationalization" can also be abbreviated as "i18n" (the abbreviation comes from skipping 18 characters in "internationalization" leaving the first and last letters "i" and "n").
The following are not valid abbreviations:
"c06r"(Has leading zeroes)"cale0ndar"(Replaces an empty string)"c24r"("calendar"the replaced are adjacent)substrings A substring is a contiguous non-empty sequence of characters within a string.
Constraints:
...