Input: " MY NAME IS ABHINAV "
Output: "ABHINAV IS NAME MY"
public class ReverseString {
static String str = " MY NAME IS ABHINAV ";
static char s[] = str.toCharArray();
static void reverse( int startIndex, int endIndex){
for(int i=startIndex;i<(endIndex/2);i++){
char c = s[i];
s[i] = s[endIndex-i-1];
s[endIndex-i-1] = c;
}
}
static int leadingSpaceIndex(){
int i = 0;
while (s[i++] == ' ');
return (i-1);
}
static int trailingSpaceIndex(){
int i = s.length;
while (s[--i] == ' ');
return i;
}
static int trim(int leadingSpace,int trailingSpace){
int place = leadingSpace;
for (int i=leadingSpace;i<(trailingSpace+1);i++){
if (s[i] != ' '){
s[i-place] = s[i];
s[i] = ' ';
}else{
while (s[i+1] == ' '){
i = i+1;
place++;
}
}
}
return 0;
}
public static void main(String args[]){
int leadingIndex = leadingSpaceIndex();
int trailingIndex = trailingSpaceIndex();
reverse(0, s.length);
int i = 0, index =0;
while ( i < s.length){
if (s[i] == ' ' || s[i] == '\0'){
reverse( index, (index+i));
index = i+1;
}
i++;
}
// int leadingIndex = leadingSpaceIndex();
System.out.println("pre final string "+ new String(s));
trim(leadingIndex, trailingIndex);
System.out.println("final string "+ new String(s));
}
}
Output: "ABHINAV IS NAME MY"
public class ReverseString {
static String str = " MY NAME IS ABHINAV ";
static char s[] = str.toCharArray();
static void reverse( int startIndex, int endIndex){
for(int i=startIndex;i<(endIndex/2);i++){
char c = s[i];
s[i] = s[endIndex-i-1];
s[endIndex-i-1] = c;
}
}
static int leadingSpaceIndex(){
int i = 0;
while (s[i++] == ' ');
return (i-1);
}
static int trailingSpaceIndex(){
int i = s.length;
while (s[--i] == ' ');
return i;
}
static int trim(int leadingSpace,int trailingSpace){
int place = leadingSpace;
for (int i=leadingSpace;i<(trailingSpace+1);i++){
if (s[i] != ' '){
s[i-place] = s[i];
s[i] = ' ';
}else{
while (s[i+1] == ' '){
i = i+1;
place++;
}
}
}
return 0;
}
public static void main(String args[]){
int leadingIndex = leadingSpaceIndex();
int trailingIndex = trailingSpaceIndex();
reverse(0, s.length);
int i = 0, index =0;
while ( i < s.length){
if (s[i] == ' ' || s[i] == '\0'){
reverse( index, (index+i));
index = i+1;
}
i++;
}
// int leadingIndex = leadingSpaceIndex();
System.out.println("pre final string "+ new String(s));
trim(leadingIndex, trailingIndex);
System.out.println("final string "+ new String(s));
}
}