Editorial for GFSSOC '14 Winter S2 - Speech
Submitting an official solution before solving the problem yourself is a bannable offence.
A simple way of approaching this problem is storing the entire string as an array, with the indexes being words. For loop each friendly-unfriendly pair to check the entire string array, and replace all words that match the unfriendly word. Remember to strip out the period and add it back in after the for loop executes. The time complexity can be reduced by using dictionaries or other data structures.
Skills needed: Array manipulation, string manipulation, for loops
Time complexity: ~\mathcal O(NM)~, where ~M~ is the number of words in the string.