I trying to submit a solution to the TRIP problem hosted on SPOJ. I've tested many tricky cases and am getting the correct output to the best of my knowledge. Can someone help me with testcases so I can see the fallacy?
`
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.*;
class TRIP
{
public ArrayList<String> routes = new ArrayList<String>();
public static void main (String[] args) throws java.lang.Exception
{
TRIP obj = new TRIP();
BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
int t = 0;
String a =null, b = null;
try {
t=Integer.parseInt(is.readLine());
} catch(IOException ex) {ex.printStackTrace();}
for(int i=0; i<t; i++) {
try {
a=is.readLine();
b=is.readLine();
} catch(IOException ex) {ex.printStackTrace();}
obj.go(a,b);
TreeSet<String> tree = new TreeSet<String>(obj.routes);
tree = obj.refine(tree);
for(String x : tree) {
System.out.println(x);
}
}
}
public void go(String a, String b) {
String create = new String();
dec(a,b,0,0, create);
dec(b,a,0,0, create);
}
public void dec(String a, String b, int i, int j, String create) {
StringBuilder ok = new StringBuilder(create);
ok.ensureCapacity(80);
for(int k=0;(i<a.length())&&(j<b.length());k++) {
if(a.charAt(i)==b.charAt(j)) {
i++; j++;
ok.append(a.charAt(i-1));
}
else {
for(;i<a.length()-1;i++) {
for(int l=j;l<b.length()-1;l++) {
if(a.charAt(i)==b.charAt(l)) {
j=l;
break;
}
}
if(a.charAt(i)==b.charAt(j)) {
break;
}
}
ok.append(a.charAt(i));
break;
}
}
create = ok.toString();
if(((i+1)<a.length())&&((j+1)<b.length())) {
dec(a,b,i+1,j+1,create);
}
if((i+1>=a.length())||(j+1>=b.length())) {
routes.add(create);
create=null;
}
if(((i+1)<a.length())&&((j+1)<b.length())) {
dec(b,a,j+1,i+1,create);
}
if((i+1>=a.length())||(j+1>=b.length())) {
if(create!=null) {
routes.add(create);
}
create=null;
}
}
public TreeSet<String> refine(TreeSet<String> tree) {
int len=0;
for(String i : tree) {
if(len<i.length()) {
len = i.length();
}
}
Iterator<String> iter = tree.iterator();
while(iter.hasNext()) {
String Next = iter.next();
if(len>Next.length()) {
iter.remove();
}
}
return tree;
}
}`
Check the problem here - http://www.spoj.com/problems/TRIP/