Sorting the Sentence
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.
Example 1:
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.
Example 2:
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.
Constraints:
2 <= s.length <= 200
s
consists of lowercase and uppercase English letters, spaces, and digits from1
to9
.- The number of words in
s
is between1
and9
. - The words in
s
are separated by a single space. s
contains no leading or trailing spaces.
Solution:-
class Solution { public String sortSentence(String s) { String [] arr = s.split (" "); System.out.println("Array is " + Arrays.toString(arr)); Arrays.sort(arr, new Comparator<String>() { public int compare(String s1, String s2) { int k = Character.getNumericValue( (s1.charAt(s1.length()-1))); System.out.println( "s1 is " + s1); System.out.println("Length of s11 is " + (s1.charAt(s1.length()-1))); System.out.println("ch1 is " + k); int ch2 = Character.getNumericValue(s2.charAt(s2.length()-1)); System.out.println( "s2 is " + s2); // System.out.println("ch2 is " + ch2); if(k <= ch2) { return -1; } else return 1; } }); System.out.println("Array is " + Arrays.toString(arr)); StringBuilder str = new StringBuilder(); for(String st : arr) { String temp = st.substring(0, st.length()-1); str.append(temp + " "); System.out.println(temp); } return str.toString().trim(); } }