String slicing in Python to check if a string can become empty by recursive deletion
Given a string “str” and another string “sub_str”. We are allowed to delete “sub_str” from “str” any number of times. It is also given that the “sub_str” appears only once at a time. The task is to find if “str” can become empty by removing “sub_str” again and again.
Examples:
Input : str = "GEEGEEKSKS", sub_str = "GEEKS" Output : Yes Explanation : In the string GEEGEEKSKS, we can first delete the substring GEEKS from position 4. The new string now becomes GEEKS. We can again delete sub-string GEEKS from position 1. Now the string becomes empty. Input : str = "GEEGEEKSSGEK", sub_str = "GEEKS" Output : No Explanation : In the string it is not possible to make the string empty in any possible manner.
We have existing solution for this problem please refer Check if a string can become empty by recursively deleting a given sub-string link. We will solve this problem in python using String Slicing. Approach is very simple,
- Use find() method of string to search given pattern sub-string.
- If sub-string lies in main string then find function will return index of it’s first occurrence.
- Now slice string in two parts, (i) from start of string till index-1 of founded sub-string, (ii) (start from first index of founded sub-string + length of sub-string) till end of string.
- Concatenate these two sliced part and repeat from step 1 until original string becomes empty or we don’t find sub-string anymore.
# Function to check if a string can become empty # by recursively deleting a given sub-string def checkEmpty( input , pattern): if len ( input ) = = 0 : return 'false' while ( len ( input ) ! = 0 ): # find sub-string in main string index = input .find(pattern) # check if sub-string founded or not if (index = = ( - 1 )): return 'false' # slice input string in two parts and concatenate input = input [ 0 :index] + input [index + len (pattern):] return 'true' # Driver program if __name__ = = "__main__" : input = 'GEEGEEKSKS' pattern = 'GEEKS' print checkEmpty( input , pattern) |
Output:
true
Recommended Posts:
- Python program to check if string is empty or not
- String slicing in Python to rotate a string
- Check if a string can become empty by recursively deleting a given sub-string
- Python counter and dictionary intersection example (Make a string using deletion and rearrangement)
- Recursive function to check if a string is palindrome
- Python | Check if a given string is binary string or not
- Make a string from another by deletion and rearrangement of characters
- Python | Check for URL in a String
- Minimum steps to delete a string after repeated deletion of palindrome substrings
- Python set to check if string is panagram
- Python Set | Check whether a given string is Heterogram or not
- Operations required to make the string empty
- How to check if a string is a valid keyword in Python?
- Python | Check if frequencies of all characters of a string are different
- Python program to check if a given string is Keyword or not
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.