leetcode 1859 solution in java

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 from 1 to 9.
  • The number of words in s is between 1 and 9.
  • 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();
        
    }
}