Ibibo Interview Question
Software Engineer / DevelopersCountry: India
Interview Type: Written Test
//Given a string that contains exactly a single pair of parenthesis,
//return parenthesis and their contents, so "xyz(abc)123" yields "(abc)". etc.
import java.io.*;
import java.util.*;
public class returnParanthesis {
public static final String EMPTY_STRING = "Empty String";
public static final String INVALID_INPUT = "Invalid String";
public String extractParanthesis(String input){
StringBuffer output=new StringBuffer();
if(input.length() == 0){
return EMPTY_STRING;
}
int i=0;
while(input.charAt(i)!='('){
if(i == input.length()-1){
return INVALID_INPUT;
}
i++;
}
while(input.charAt(i)!=')'){
if(i == input.length()-1){
return INVALID_INPUT;
}
output.append(input.charAt(i));
i++;
}
output.append(input.charAt(i++));
return output.toString();
}
public static void main(String args[]){
returnParanthesis r = new returnParanthesis();
System.out.println(r.extractParanthesis("abc(xyx)123"));
System.out.println(r.extractParanthesis("abc(xyx123"));
System.out.println(r.extractParanthesis("(abcxyx12)3"));
System.out.println(r.extractParanthesis(""));
System.out.println(r.extractParanthesis("()"));
}
}
public class SingleParanthesis{
public static void main(String args[]){
String inStr = "xyz(abc)123";
int openParanthesisIndex = inStr.indexOf("(");
int closeParanthesisIndex = inStr.indexOf(")");
if(openParanthesisIndex<closeParanthesisIndex)
System.out.println(inStr.substring(openParanthesisIndex, closeParanthesisIndex+1));
else
System.out.println("Input condition is not satisfied");
}
}
public class ParenthesisSurrounded {
public static void main(String[] args) {
String str = "xyzr(ghf)12j6(jhtm)j876 fdfdfd (fdfdfd)jjjjj ";
new ParenthesisSurrounded().recursiveCall(str, null);
}
public String recursiveCall(String baseString,String outputString){
if(null != outputString && baseString.indexOf("(") >= 0)
outputString += (baseString.length() > 0)?baseString.substring(baseString.indexOf("("),baseString.indexOf(")")+1):"";
else if(baseString.indexOf("(") >= 0)
outputString = (baseString.length() > 0)?baseString.substring(baseString.indexOf("("),baseString.indexOf(")")+1):"";
if(baseString.indexOf(")") >= 0)
baseString = (baseString.length() > 0)?baseString.substring(baseString.indexOf(")")+1):"";
if( baseString.indexOf("(") == -1){
System.out.println("final printing outputString : "+outputString);
return outputString;
}
return recursiveCall(baseString,outputString);
}
}
- Venkateswara Rao July 03, 2014