Problem 920. Eliminate Polysyllabics: Long live short words!
Given a string s1, return s2 in which all the words with more than one syllable have been removed.
To make things simple, we will (for the purposes of this problem) define a polysyllabic word as one in which at least two vowel groups are separated by a least one consonant group. Consider vowels to come from the set [aeiouy]. All other letters are considered consonants. There are many exceptions to the rules I have defined here, but I will keep the test suite consistent with these rules.
So these words are polysyllabic:
ANY BUSY POLICEMAN EXPECTS COUNTLESS INTERRUPTIONS
These words are monosyllabic:
STRENGTH IS THE SUM OF ALL WE KNOW TO BE TRUE
Here are some examples of one-syllable words that I WON'T use because they violate my rules:
ONE ICED JUICE PLEASE
After you have removed the offending words, de-dupe the spaces. That is, any remaining words should be separated by exactly one space. There should be no spaces at the beginning or end of the output string s2. Letters may be upper or lower case.
Example:
Input: 'The all day meetings will continue until we learn why productivity is so low'
Output: 'The all day will we learn why is so low'
Solution Stats
Problem Comments
-
2 Comments
asserts are commented out in the test suite...
Whoops! Thanks for pointing that out. I might've eventually gotten suspicious after seeing absolutely everybody passing...
Solution Comments
Show commentsProblem Recent Solvers114
Suggested Problems
-
Find relatively common elements in matrix rows
2051 Solvers
-
Renaming a field in a structure array
1517 Solvers
-
Convert a structure into a string
200 Solvers
-
Calculate the Number of Sign Changes in a Row Vector (No Element Is Zero)
718 Solvers
-
Given a square and a circle, please decide whether the square covers more area.
956 Solvers
More from this Author50
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!