Python | Reverse Incremental String Slicing
Last Updated :
27 Feb, 2023
Sometimes, while working with Python strings, we can have a problem in which we need to perform the slice and print of strings in reverse order. This can have applications in day-day programming. Let us discuss certain ways in which this task can be performed.
Method #1: Using loops
This is the brute-force way in which this task can be performed. In this, we iterate the list in reverse order and store the incremental strings in the list.
Python3
# Python3 code to demonstrate working of
# Reverse Incremental String Slicing
# Using loop
# initializing string
test_str = "geeks"
# printing original string
print("The original string is : " + test_str)
# Reverse Incremental String Slicing
# Using loop
res = []
sub = ''
for chr in reversed(test_str):
sub += chr
res.append(sub)
# printing result
print("The incremental reverse strings : " + str(res))
Output : The original string is : geeks
The incremental reverse strings : ['s', 'sk', 'ske', 'skee', 'skeeg']
Method #2: Using list slicing + list comprehension
This is yet another way in which this task can be performed. In this, we iterate the string list using list comprehension and slicing is used to perform incremental slicing.
Python3
# Python3 code to demonstrate working of
# Reverse Incremental String Slicing
# Using list comprehension + list slicing
# initializing string
test_str = "geeks"
# printing original string
print("The original string is : " + test_str)
# Reverse Incremental String Slicing
# Using list comprehension + list slicing
res = [test_str[-1: idx: -1] for idx in range(-2, -2 - len(test_str), -1)]
# printing result
print("The incremental reverse strings : " + str(res))
Output : The original string is : geeks
The incremental reverse strings : ['s', 'sk', 'ske', 'skee', 'skeeg']
Method #3: Using accumulate + string slicing
This is another way to perform the task. We can use string slicing to reverse the string and accumulate is used to iterate over the string and slice the string in sub-strings.
Python3
# Python3 code to demonstrate working of
# Reverse Incremental String Slicing
# Using accumulate + string slicing
from itertools import accumulate
import operator
# initializing string
test_str = "geeks"
# printing original string
print("The original string is : " + test_str)
# Reverse Incremental String Slicing
# Using accumulate + string slicing
ans = list(accumulate(test_str[::-1], operator.add))
# printing result
print("The incremental reverse strings : " + str(ans))
OutputThe original string is : geeks
The incremental reverse strings : ['s', 'sk', 'ske', 'skee', 'skeeg']
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #4: Using slicing
Python3
# Python3 code to demonstrate working of
# Reverse Incremental String Slicing
# Using loop
# initializing string
test_str = "geeks"
# printing original string
print("The original string is : " + test_str)
# Reverse Incremental String Slicing
# Using loop
res = []
x=test_str[::-1]
for i in range(0,len(x)):
res.append(x[:i+1])
# printing result
print("The incremental reverse strings : " + str(res))
OutputThe original string is : geeks
The incremental reverse strings : ['s', 'sk', 'ske', 'skee', 'skeeg']
Method #5: Using reduce function
- Import the reduce function from the functools module.
- Define a function called reverse_incremental_string that takes two arguments: an accumulator list acc and a character chr.
- Inside the reverse_incremental_string function, append the previous substring and the current character to the accumulator list.
- Return the accumulator list.
- Define a string called test_str to store the input string.
- Apply the reduce function to the reversed string, using reverse_incremental_string as the reducing function and [''] as the initial value of the accumulator.
- The final result is a list of incremental reverse strings, excluding the empty string at the beginning.
Python3
from functools import reduce
def reverse_incremental_string(acc, chr):
# Append the previous substring and the current character to the accumulator list
acc.append(acc[-1] + chr)
return acc
test_str = "geeks"
# Apply the reduce function to the reversed string
# The initial value of the accumulator is [''], which represents the empty string
# The reverse_incremental_string function is applied to each character of the reversed string
# The final result is the list of incremental reverse strings, excluding the empty string at the beginning
res = reduce(reverse_incremental_string, reversed(test_str), [''])
print("The incremental reverse strings : " + str(res[1:]))
OutputThe incremental reverse strings : ['s', 'sk', 'ske', 'skee', 'skeeg']
Time complexity: O(n), where n is the length of the input string. This is because the reduce function applies the reverse_incremental_string function to each character of the reversed string, resulting in a linear time complexity.
Auxiliary space: O(n), where n is the length of the input string. This is because we use a list to store the incremental reverse strings as they are computed. The size of this list grows linearly with the length of the input string.
Similar Reads
Python | Reverse Interval Slicing String Sometimes, while working with strings, we can have a problem in which we need to perform string slicing. In this, we can have a variant in which we need to perform reverse slicing that too interval. This kind of application can come in day-day programming. Let us discuss certain ways in which this t
4 min read
Python - Reverse Slicing of given string Reverse slicing in Python is a way to access string elements in reverse order using negative steps.Using Slicing ([::-1])Using slicing with [::-1] in Python, we can reverse a string or list. This technique works by specifying a step of -1, which starts at the end of the sequence and moves backward,
1 min read
Reverse All Strings in String List in Python We are given a list of strings and our task is to reverse each string in the list while keeping the order of the list itself unchanged. For example, if we have a list like this: ['gfg', 'is', 'best'] then the output will be ['gfg', 'si', 'tseb'].Using For LoopWe can use a for loop to iterate over th
2 min read
How To Reverse A List In Python Using Slicing In Python, list slicing is a common practice and it is the most used technique for programmers to solve efficient problems. In this article, we will see how we can reverse a list using slicing in Python. Reverse a List Using Slicing in PythonBelow are some of the examples by which we can perform rev
3 min read
Python - Reversed Split Strings In Python, there are times where we need to split a given string into individual words and reverse the order of these words while preserving the order of characters within each word. For example, given the input string "learn python with gfg", the desired output would be "gfg with python learn". Let
3 min read
Python - K elements Reversed Slice Given List of elements, perform K elements reverse slice. Input : test_list = [2, 4, 6, 8, 3, 9, 12, 15, 16, 18], K = 3 Output : [18, 16, 15] Explanation : 3 elements sliced from rear end. Input : test_list = [2, 4, 6, 8], K = 3 Output : [8, 6, 4] Explanation : 3 elements sliced from rear end, 8, 6
4 min read