Problem 1.5: Write a method to replace all spaces in a string with '%20'.
The first solution flashed into my mind takes O(n), and it's similar to the one on the answer page.
import string def replace_space(str): # Count the number of spaces space_count = 0 for i in range(0, len(str)): if str[i] == ' ': space_count = space_count + 1 # Allocate a new string new_str = [' ' for i in range(0, len(str) + 2*space_count)] #Copy the original string into new string, # while replacing spaces with "%20" j = 0 for i in range(0, len(str)): if str[i] == ' ': new_str[j] = '%' new_str[j+1] = '2' new_str[j+2] = '0' j = j + 3 else: new_str[j] = str[i] j = j + 1 return string.join(new_str, '')
One thing to note is the string.join() function, which takes the connector as the second parameter and the default connector is a space.