Reverse Sort a String - Python
Last Updated :
12 Jul, 2025
The goal is to take a given string and arrange its characters in descending order based on their Unicode values. For example, in the string "geeksforgeeks", the characters will be sorted from highest to lowest, resulting in a new string like "ssrokkggfeeeee". Let's understand different methods to perform this operation efficiently.
Using sorted() with reverse=True
This is the most straightforward way to reverse sort a string. sorted() function lets us easily sort elements and the reverse=True parameter ensures the order is descending.
Python
s = "geeksforgeeks"
res = "".join(sorted(s, reverse=True))
print(res)
Explanation:
- sorted() function sorts characters of the string.
- Adding reverse=True sorts them in descending order.
- "".join() combines the sorted characters into a single string.
Using list.sort()
If we are working with a string that has been converted into a list, we can use sort() method to reverse sort it in place. This method is slightly faster for large strings as it avoids creating a new list.
Python
s = "geeksforgeeks"
# Convert string to list and reverse sort
a = list(s)
a.sort(reverse=True)
res = "".join(a)
print(res)
Explanation:
- list(s) converts the string s into a list of characters.
- a.sort(reverse=True) sorts the list a in descending order.
- "".join(a) combines the sorted characters into a final string.
Using recursion
Recursion provides an unconventional approach to reverse sorting a string. It identifies the maximum character in the string repeatedly and appends it to the result.
Python
def fun(s):
if len(s) <= 1: # Base case
return s
m = max(s)
s = s.replace(m, "", 1) # Remove it from the string
return m + fun(s)
s = "geeksforgeeks"
res = fun(s)
print(res)
Explanation:
- if len(s) <= 1 checks if the string s has one or fewer characters, in which case it's returned as is (base case).
- m = max(s) finds the maximum character in the string s.
- return m + fun(s) recursively calls fun(s) with the modified string and adds m to the result.
Using for loop
If we want more control and prefer to manually handle the process, we can use a for loop to reverse sort a string.
Python
s = "geeksforgeeks"
res = ""
for c in sorted(s, reverse=True):
res += c
print(res)
Explanation:
- sorted(s, reverse=True) sorts the string s in descending order.
- for c in sorted(s, reverse=True) iterates over each character in the sorted string.
- res += c appends each character to the result string res, which is then printed.
Explore
Python Fundamentals
Python Data Structures
Advanced Python
Data Science with Python
Web Development with Python
Python Practice