Solution of Challenge - 8

Note- This particular problem can be solved in different techniques but here i am going to use the optimal solution in terms of memory and efficiency.

Algorithum-   step 1- First is will reverse the every word given in our String
                       step 2- Then i will reverse the whole String.
                       step 3- Get the desire output.


public class Problem8 {

    static StringBuffer s = new StringBuffer("Kushwaha Umesh is name My");

    static void swap(int i, int j) {        //This method will reverse the String
        while (i < j) {
            char c = s.charAt(i);
            s.setCharAt(i, s.charAt(j));
            s.setCharAt(j, c);
            i++;
            j--;
        }
    }

    public static void main(String args[])
    {
        System.out.println(s);
        int n = 0, l = 0, m = 0;
        while (n < s.length()) 
           {
            if (n == 0) {
                l = 0;
            }
            if (s.charAt(n) == ' ' || n == s.length() - 1) {  
                m = n;                        
                
                 //With the help of this condition we can                                                            //recognize particular word in given String.
                
                 if (n == s.length() - 1) 
                {
                    m = n;
                } else 
                {
                    m--;
                }
                swap(l, m);                         //Here we will get the final output.
                l = n + 1;
            }
            n++;

        }
        System.out.println(s);
        swap(0, s.length() - 1);
        System.out.println(s);
    }
}


Output:

Kushwaha Umesh is name My

ahawhsuK hsemU si eman yM                                  //step 1
My name is Umesh Kushwaha                                  //step 2