EMC Interview Question Software Engineer in Tests
0of 0 votesWrite a String Reverser (using Recursion) and write JUnit test for the reverse method.
Team: RSA
Country: India
Interview Type: Written Test
public static String reverseStringWithRecursion(String initStr){
char[] out=new char[initStr.length()];
reverse(initStr.toCharArray(), out,0,out.length-1);
return new String(out);
}
private static void reverse(char[] array,char[] out,int startIndex,int outIndex){
if(startIndex==array.length) return;
reverse(array, out, startIndex+1, outIndex-1);
out[outIndex]=array[startIndex];
}
public class StringReverseRecursion {
public static void main(String[] args) {
System.out.println(reverseString("ORACLE"));
}
public static String reverseString(String s){
char [] out=new char[s.length()];
reverse(s, out, 0, s.length()-1);
return new String(out);
}
public static void reverse(String input, char[] out, int startIndex, int outIndex){
if(startIndex==input.length())
return;
reverse(input, out, startIndex+1, outIndex-1);
out[outIndex]=input.charAt(startIndex);
}
}

Reverse(String str)
- Rishi on June 03, 2012 Edit | Flag Reply{
if(str.length()==1)
return str;
return Reverse(str.substring(1,str.length()))+str.substring(0,1);
}