Given a sentence, sort it alphabetically in ascending order.
Examples:
Input : to learn programming refer geeksforgeeks
Output : geeksforgeeks learn programming refer to
Input : geeks for geeks
Output : for geeks geeks
Approach 1 : We will use the built-in library function to sort the words of the sentence in ascending order.
Prerequisites:
Follow the steps below:
- Split the Sentence in words.
- Sort the words alphabetically
- Join the sorted words alphabetically to form a new Sentence.
Below is the implementation of the above idea.
Python3
def sortedSentence(Sentence):
words = Sentence.split( " " )
words.sort()
newSentence = " " .join(words)
return newSentence
Sentence = "to learn programming refer geeksforgeeks"
print (sortedSentence(Sentence))
Sentence = "geeks for geeks"
print (sortedSentence(Sentence))
|
Outputgeeksforgeeks learn programming refer to
for geeks geeks
Time Complexity : O(nlogn) , due to built-in sort function used.
Auxiliary Space : O(n) , where n is the total number of characters in string.
Approach – 2 :
In this approach we will use the built-in split() method alongside the sorted() function to achieve the same in less lines and less use of functions and methods. We will not use the join() method here.
Python3
def sort_alphabetically(sentence : str ) - > list ():
s = sentence.split( " " )
return sorted (s)
sen = "to learn programming refer geeksforgeeks"
print (sort_alphabetically(sen))
sen = "geeks for geeks"
print (sort_alphabetically(sen))
|
Output['geeksforgeeks', 'learn', 'programming', 'refer', 'to']
['for', 'geeks', 'geeks']
Time Complexity – O(nlogn) # Due to the use of sorted() built in function.
Space Complexity – O(n) # ‘n’ number of characters in string