VOOZH about

URL: https://www.geeksforgeeks.org/python/python-test-substring-order/

⇱ Python - Test substring order - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Python - Test substring order

Last Updated : 27 Apr, 2023

Given two strings, check if substring characters occur in correct order in string.

Input : test_str = 'geeksforgeeks', K = 'sees' Output : True Explanation : "s" after that "ee" and then "s" is present in order in string 1. 

Input : test_str = 'geeksforgeeks', K = 'seef' Output : False Explanation : Unordered String.

Method #1 : Using join() + generator expression + in operator

In this, we check we join all the characters which occur in the substring using join(), post that check if substring is present using in operator.


Output
The original string is : geeksforgeeks
Is substring in order : True

Time Complexity: O(n)

Space Auxiliary: O(n)

Method #2 : Using all() + next() + generator expression

In this, we get the string with just substring characters using next() and generator expression, to check for order, all() operation is used for each character in substring.


Output
The original string is : geeksforgeeks
Is substring in order : True

Time Complexity: O(n)

Auxiliary Space: O(n)

Method #3 : Using find() method


Output
The original string is : geeksforgeeks
Is substring in order : True

Time Complexity: O(n)

Auxiliary Space: O(n)

Method #4 : Using replace() and find() methods


Output
The original string is : geeksforgeeks
Is substring in order : True

Method #5 : Using operator.contains() method

Approach

  1. Replace all characters of test_str which are not present in K using replace() method
  2. Now check whether K is present in test_str using operator.contains() method
  3. Display the return value of operator.contains()

Output
The original string is : geeksforgeeks
Is substring in order : True

Time Complexity : O(N) N- length of string

Auxiliary Space - O(1) because res is a single variable

Method 6 :  using list comprehension and the all() function


Output
The original string is : geeksforgeeks
Is substring in order : True

The time complexity of this approach is O(n^2), where n is the length of the substring K, because for each character in K, we need to search through the remaining part of test_str to find its position.

The auxiliary space complexity is O(1), because we only use a few extra variables to store the current position in test_str, the previous position found by find(), and the result of the all() function. No additional data structures are created.

Comment