Sometimes, while working with strings, we can have a problem in which we may require to perform swapping of consecutive elements in string. Let’s discuss certain ways in which this task can be performed.
Method #1 : Using join() + zip() + generator expression The combination of above functions can be used to solve this problem. In this, we perform the task of joining consecutive characters using zip() and generator expression is used to provide the swap logic.
Python3
# Python3 code to demonstrate working of # Consecutive element swapping in String # using join() + zip() + generator expression # initializing string test_str = "gfgisbesty" # printing original string print ("The original string is : " + test_str) # Consecutive element swapping in String # using join() + zip() + generator expression res = ''.join([char[ 1 ] + char[ 0 ] for char in zip (test_str[:: 2 ], test_str[ 1 :: 2 ])]) # printing result print ("String after Consecutive Swapping : " + str (res)) |
The original string is : gfgisbesty String after Consecutive Swapping : fgigbsseyt
Time Complexity: O(n*nlogn) where n is the number of elements in the string list. The join() + zip() + generator expression is used to perform the task and it takes O(n*nlogn) time.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the string list.
Method #2 : Using regex expression This task can also be performed using regular expression using correctly framed regex.
Python3
# Python3 code to demonstrate working of # Consecutive element swapping in String # using regular expression import re # initializing string test_str = "gfgisbesty" # printing original string print ("The original string is : " + test_str) # Consecutive element swapping in String # using regular expression res = re.sub(r '(.)(.)' , r '\2\1' , test_str) # printing result print ("String after Consecutive Swapping : " + str (res)) |
The original string is : gfgisbesty String after Consecutive Swapping : fgigbsseyt
Time Complexity: O(n) where n is the number of elements in the string list. The regex is used to perform the task and it takes O(n) time.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the test_list.
Method #3 : Using for loop
This task can also be performed using for loop, by performing the swapping logic in loop.
Python3
# Python3 code to demonstrate working of # Consecutive element swapping in String # using for loop # initializing string test_str = "gfgisbesty" # printing original string print ( "The original string is : " + test_str) # Consecutive element swapping in String # using for loop res = '' for i in range ( 0 , len (test_str) - 1 , 2 ): res + = test_str[i + 1 ] + test_str[i] # printing result print ( "String after Consecutive Swapping : " + str (res)) #this code is contributed by edula vinay kumar reddy |
The original string is : gfgisbesty String after Consecutive Swapping : fgigbsseyt
Time complexity: O(n)
Auxiliary Space: O(1)
Method #4:Using slicing and string concatenation
Python3
# Initialize the string my_string = "gfgisbesty" # Swap consecutive elements my_string = my_string[ 1 :: 2 ] + my_string[ 0 :: 2 ] # Print the updated string print (my_string) #This Code is contributed by Vinay Pinjala. |
fibsyggset
Time complexity: O(n)
Auxiliary Space: O(1)