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.
We have a solution to this problem, see OrderedDict () . The approach is very simple,
- 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.
0 p >
. iteritems ():
+ code >
= code >
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.