Given a list of strings. The task is to split the string by the given list of strings.
Input : test_str = ‘geekforneveropenbestforneveropen’, sub_list = [“best”]
Output : [‘geekforneveropen’, ‘best’, ‘forneveropen’]
Explanation : “best” is extracted as different list element.Input : test_str = ‘geekforneveropenbestforneveropenCS’, sub_list = [“best”, “CS”]
Output : [‘geekforneveropen’, ‘best’, ‘forneveropen’, “CS”]
Explanation : “best” and “CS” are extracted as different list element.
Method : Using re.split() + | operator
In this, we perform the task of split using regex split() with | operator to check for all the words that need to be put separately.
Python3
# Python3 code to demonstrate working of # Separate specific Strings# Using re.split() + | operatorimport re# initializing stringtest_str = 'geekforneveropenisbestforneveropen'# printing original Stringprint("The original string is : " + str(test_str))# initializing list words sub_list = ["best"]# regex to for splits()# | operator to include all strings temp = re.split(rf"({'|'.join(sub_list)})", test_str)res = [ele for ele in temp if ele] # printing result print("The segmented String : " + str(res)) |
The original string is : geekforneveropenisbestforneveropen The segmented String : ['geekforneveropenis', 'best', 'forneveropen']
Time Complexity: O(n)
Auxiliary Space: O(n)
Method : Using replace(),split() methods
Approach
- Initiate a for loop to traverse list of strings
- Replace the string in original string by appending “*” front and back
- Finally split the string with * as parameter
- This will return a list, display the list
Python3
# Python3 code to demonstrate working of# Separate specific Strings# initializing stringtest_str = 'geekforneveropenisbestforneveropen'# printing original Stringprint("The original string is : " + str(test_str))# initializing list wordssub_list = ["best"]for i in sub_list: test_str=test_str.replace(i,"*"+i+"*")res=test_str.split("*")# printing resultprint("The segmented String : " + str(res)) |
The original string is : geekforneveropenisbestforneveropen The segmented String : ['geekforneveropenis', 'best', 'forneveropen']
Time Complexity : O(N)
Auxiliary Space : O(N)
Method 3 : Use the re module
step by step approach :
- The program starts by importing the “re” module. This module provides regular expression operations in Python.
- The program then initializes a string variable named “test_str” with the value “geekforneveropenisbestforneveropen”.
- The program then prints the original string using the “print” statement and concatenating the original string with a string literal.
- The program initializes a list variable named “sub_list” with the value [“best”].
- The program creates a regular expression pattern by joining the elements of the “sub_list” with a pipe symbol “|”. The pipe symbol is used to separate the substrings in the pattern. The resulting pattern is assigned to the variable “pattern”.
- The program then splits the original string “test_str” using the regular expression pattern stored in the variable “pattern”. The resulting segments are stored in the variable “res”.
- Finally, the program prints the segmented string using the “print” statement and concatenating the segmented string with a string literal.
Python3
import re# initializing stringtest_str = 'geekforneveropenisbestforneveropen'# printing original Stringprint("The original string is : " + str(test_str))# initializing list wordssub_list = ["best"]# add a '|' between the substrings to create the pattern for splittingpattern = '|'.join(sub_list)# split the string using the patternres = re.split(pattern, test_str)# printing resultprint("The segmented String : " + str(res)) |
The original string is : geekforneveropenisbestforneveropen The segmented String : ['geekforneveropenis', 'forneveropen']
Time complexity: The replace() method has a time complexity of O(n), where n is the length of the string.
Auxiliary space: The original string is replaced with a new string, which has a space complexity of O(n). The segmented string is stored in a list, which has a space complexity of O(m), where m is the number of substrings. Overall, the space complexity is O(n+m).
