package com.anuragkapur.pie.arraysandstrings; /** * @author anuragkapur */ public class ReverseWords { public String reverse(String str) { char ch[] = str.toCharArray(); int start = 0; int end = str.length() - 1; // reverse string reverse(ch, start, end); // reverse words start = 0; for (int i = 0; i < ch.length; i++) { if (ch[i] == ' ') { reverse(ch, start, i - 1); start = i+1; } } // reverse last word reverse(ch, start, ch.length-1); return new String(ch); } private void reverse(char[] ch, int start, int end) { while (start < end) { char temp = ch[start]; ch[start] = ch[end]; ch[end] = temp; start ++; end --; } } }