Open In App

Python | Consecutive element swapping in String

Last Updated : 09 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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))


Output : 

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))


Output : 

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


Output

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.


Output

fibsyggset

Time complexity: O(n)
Auxiliary Space: O(1)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads