A sentence is a list of words that are separated by a single space with no leading or trailing spaces. Each word consists of lowercase and uppercase English letters.
A sentence can be shuffled by appending the 1-indexed word position to each word then rearranging the words in the sentence.
- For example, the sentence
"This is a sentence"can be shuffled as
"sentence4 a3 is2 This1"or
"is2 sentence4 This1 a3".
Given a shuffled sentence
s containing no more than
9 words, reconstruct and return the original sentence.
Input: s = "is2 sentence4 This1 a3" Output: "This is a sentence" Explanation: Sort the words in s to their original positions "This1 is2 a3 sentence4", then remove the numbers.
Input: s = "Myself2 Me1 I4 and3" Output: "Me Myself and I" Explanation: Sort the words in s to their original positions "Me1 Myself2 and3 I4", then remove the numbers.
2 <= s.length <= 200
sconsists of lowercase and uppercase English letters, spaces, and digits from
- The number of words in
- The words in
sare separated by a single space.
scontains no leading or trailing spaces.
Time complexity: O(n)
Space complexity: O(n)
def sortSentence(self, s: str) -> str:
p = [(w[:-1], int(w[-1])) for w in s.split()]
p.sort(key=lambda x : x)
return " ".join((w for w, _ in p))