Input: string = "engineers rock" pattern = "er"; Output: true Explanation: All ’e’ in the input string are before all’ r’. Input: string = "engineers rock" pattern = "egr"; Output: false Explanation: There are two ’e’ after’ g’ in the input string. Input: string = "engineers rock" pattern = "gsr"; Output: false Explanation: There are one ’r’ before’ s’ in the input string.
- Create an OrderedDict of the input string that contains the characters of the input strings as the only key .
- Now set the pointer at the beginning of the template string .
- Now loop through the generated OrderedDict and match the keys to a single character of the template string, if the key and character match, then increment the pointer by 1.
- If the template pointer reaches its end , this means that the line follows the order of the characters defined by the pattern, otherwise not.
| tr> |
This article is courtesy of Shashank Mishra (Gullu) . If you are as Python.Engineering and would like to contribute, you can also write an article using contribute.python.engineering or by posting an article contribute @ python.engineering. See my article appearing on the Python.Engineering homepage and help other geeks.
Please post comments if you find anything wrong or if you’d like to share more information on the topic discussed above.