Given a string of letters, write a python program to sort the given string in an alphabetical order.
Example:
Input : PYTHON Output : HNOPTY Input : Geeks Output : eeGks
Naive Method to sort letters of string alphabetically
Here we are converting the string into list and then finally sorting the entire list alphabet wise.
Python3
s = "GEEKSFORGEEKS" li = [] l = len (s) for i in range ( 0 ,l): li.append(s[i]) for i in range ( 0 ,l): for j in range ( 0 ,l): if li[i]<li[j]: li[i],li[j] = li[j],li[i] j = "" for i in range ( 0 ,l): j = j + li[i] print (j) |
Output:
EEEEFGGKKORSS
Using sorted() with join() to sort letters of string alphabetically
Here we are converting the string into a sorted list and then finally joining them using join function.
Python3
# Python3 program to sort letters # of string alphabetically def sortString( str ): return ''.join( sorted ( str )) # Driver code str = 'PYTHON' print (sortString( str )) |
Output:
HNOPTY
Using sorted() with accumulate() to sort letters of string alphabetically
Here we are importing accumulate from itertools module converting the string into a sorted list, and hence return the result
Python3
# Python3 program to sort letters # of string alphabetically from itertools import accumulate def sortString( str ): return tuple (accumulate( sorted ( str )))[ - 1 ] # Driver code str = 'PYTHON' print (sortString( str )) |
Output:
HNOPTY
Using sorted() with reduce() to sort letters of string alphabetically
Another alternative is to use reduce() method. It applies a join function on the sorted list using ‘+’ operator.
Python3
# Python3 program to sort letters # of string alphabetically from functools import reduce def sortString( str ): return reduce ( lambda a, b : a + b, sorted ( str )) # Driver code str = 'PYTHON' print (sortString( str )) |
Output:
HNOPTY
When string is in different cases –
Using sorted() with join() to sort letters of string alphabetically
Here we are converting the string into a sorted list and then finally joining them using the lambda functions.
Python3
# Python3 program to sort letters # of string alphabetically from itertools import accumulate def sortString( str ): return "".join( sorted ( str , key = lambda x:x.lower())) # Driver code str = 'Geeks' print (sortString( str )) |
Output:
eeGks
Time Complexity: O(n*logn), as sorted() function is used.
Auxiliary Space: O(n), where n is length of string.