Flipkart Interview Question
Java DevelopersTeam: Machine coding
Country: India
Interview Type: In-Person
public class ThreeStrings {
public static void main(String[] args) {
String a="dhffyhtdhjdhgsdeadhjglktji", b="kjjgtytfctesfewajkjgjhvfhjfc",c="trcgcv" ;
String subStr = "",temp="";
Boolean flag=false;
for (int i=0;i<a.length();i++){
String chr = a.charAt(i)+"";
if(b.contains(chr) && !c.contains(chr)){
if(!flag)
temp+=a.charAt(i)+"";
else{
if(subStr.length()<temp.length())
subStr=temp;
temp=chr;
flag=false;
}
}
else
flag=true;
}
System.out.println(subStr);
}
}
As mentioned in qus ' smallest sub-sequence in a' so smallest is possible for single char, hence just find a char which is present in a and b but not in c is the ans.
I think qus should had to be ' longest subsequence in a'
package string;
public class ThreeStrings {
public static void main(String[] args) {
String StrA = "abcdecfghij" , StrB = "fedb" , c="ahij";
String temp = "" , subStr = "";
boolean startOver = false;
for(int i=0;i<StrA.length();i++) {
char ch = StrA.charAt(i);
if(StrB.contains(""+ch) || startOver) {
startOver = true;
if(c.contains(""+ch)) {
startOver = false;
temp = "";
}
else {
temp = temp+ch;
if(containsAll(temp, StrB)) {
System.out.println(temp);
break;
}
}
}
}
}
static boolean containsAll(String a , String b) {
for(int i=0;i<b.length();i++) {
if(!a.contains(b.charAt(i)+"")) {
return false;
}
}
return true;
}
}
This has already been discussed. You can check it out here:
- puneet.sohi April 26, 2014careercup dot com / question?id=6669318070730752