Given an input string and a pattern, check if characters in the input string follows the same order as determined by characters present in the pattern. Assume there won’t be any duplicate characters in the pattern.
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 existing solution for this problem, please refer Check if string follows order of characters defined by a pattern or not | Set 1. Here we solve this problem quickly in python using OrderedDict(). Approach is very simple,
- Create an OrderedDict of input string which contains characters of input strings as Key only.
- Now set a pointer at the start of pattern string.
- Now traverse generated OrderedDict and match keys with individual character of pattern string, if key and character matches with each other then increment pointer by 1.
- If pointer of pattern reaches it’s end that means string follows order of characters defined by a pattern otherwise not.
This article is contributed by Shashank Mishra (Gullu). If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- K’th Non-repeating Character in Python using List Comprehension and OrderedDict
- Python - Check whether a string starts and ends with the same character or not (using Regular Expression)
- Check if frequency of character in one string is a factor or multiple of frequency of same character in other string
- OrderedDict in Python
- LRU Cache in Python using OrderedDict
- Python - Insertion at the beginning in OrderedDict
- Check if both halves of the string have at least one different character
- Program to check if a string contains any special character
- Check whether the Average Character of the String is present or not
- Check if a two character string can be made using given words
- Check if the frequency of any character is more than half the length of the string
- Check if max occurring character of one string appears same no. of times in other
- Check if the characters of a given string are in alphabetical order
- Check whether the vowels in a string are in alphabetical order or not
- Check if string follows order of characters defined by a pattern or not | Set 3
- Check if string follows order of characters defined by a pattern or not | Set 2
- Check if string follows order of characters defined by a pattern or not | Set 1
- Python | Sorting string using order defined by another string
- Python - Least Frequent Character in String
- How to capitalize first character of string in Python