Sometimes, while working with strings, we may have situations in which we might have more than 1 spaces between intermediate words in strings that are mostly unwanted. This type of situation can occur in web development and often needs rectification. Let’s discuss certain ways in which this task can be performed.
Examples:
Example 1: Input: GfG is good website Output: GfG is good website Explanation: Unwanted spaces have been removed from the string. Example 2: Input: GfG is good website Output: GfG is good website Explanation: Unwanted spaces have been removed from the string.
Method #1: Using re.sub() This problem can be performed using the regex in which we can restrict the separation between the words to be just a single space using the appropriate regex string.
Python3
# Python3 code to demonstrate working of # remove additional space from string # Using re.sub() import re # initializing string test_str = "GfG is good website" # printing original string print ( "The original string is : " + test_str) # using re.sub() # remove additional space from string res = re.sub( ' +' , ' ' , test_str) # printing result print ( "The strings after extra space removal : " + str (res)) |
The original string is : GfG is good website The strings after extra space removal : GfG is good website
Time Complexity: O(n)
Space Complexity: O(n)
Method #2: Using split() and join() This task can also be performed using the split and join function. This is performed in two steps. In first step, we convert the string into list of words and then join with a single space using the join function.
Python3
# Python3 code to demonstrate working of # remove additional space from string # Using split() + join() # initializing string test_str = "GfG is good website" # printing original string print ( "The original string is : " + test_str) # using split() + join() # remove additional space from string res = " " .join(test_str.split()) # printing result print ( "The strings after extra space removal : " + str (res)) |
The original string is : GfG is good website The strings after extra space removal : GfG is good website
Time Complexity: O(n)
Space Complexity: O(n)
Method #3 : Using split() with strip() and join() This task can also be performed using the split with strip and join function. This is performed in two steps. In first step, we convert the string into list of words and then join with a single space using the join function.
Python3
# Python3 code to demonstrate working of # remove additional space from string # Using strip() and split() + join() # initializing string test_str = "GfG is good website" # printing original string print ( "The original string is : " + test_str) # using split() + join() # remove additional space from string res = " " .join(test_str.strip().split()) # printing result print ( "The strings after extra space removal : " + str (res)) |
Method 4: Using a loop to iterate over each character of the string
Initialize an empty string to store the result
Use a loop to iterate over each character of the input string
If the current character is a space and the previous character was also a space, skip it
Otherwise, append the current character to the result string
Python3
# initializing string test_str = "GfG is good website" # printing original string print ( "The original string is : " + test_str) # using a loop to remove additional spaces res = "" for i in range ( len (test_str)): if i = = 0 or (test_str[i] ! = " " or test_str[i - 1 ] ! = " " ): res + = test_str[i] # printing result print ( "The strings after extra space removal : " + str (res)) |
The original string is : GfG is good website The strings after extra space removal : GfG is good website
Time complexity: O(n)
Auxiliary space: O(n) (to store the result string)