Algoritm case 1
Tue 15 Sep 2015, 19:42
Im curious with this Algoritm case: You have 2 words separated by comma. You need to find how many combinations of words from the first word. The combination must be unique and contain the second word.
Input 1:
aabc,ba
Output:
combination: 6
(abac, acba, baac, baca, caba, cbaa)
Input 2:
ferdiferdi,ferdi
Output:
combination: 719
And this is my code and i don’t know this is the simple code or not:
import java.util.*;
import java.io.*;
class Main{
static ArrayList al=new ArrayList();
static int count=0;
public static void main(String []argh)
{
String str="aabc,ba";
String[] parts = str.split(",");
String word=parts[0];
for(int i=0;i<word.length();i++){
String out="";
out=word.substring(i)+word.substring(0,i);
getComb(out.substring(1),out.substring(0,1),2,parts[1]);
}
System.out.println(count);
}
static void getComb(String word,String currChar,int lvl,String skipW){
for(int i=0;i<word.length();i++){
String out="";
String out2="";
out=word.substring(i)+word.substring(0,i);
out2=currChar+out;
int lvl2=lvl+1;
if(lvl2<out2.length()){
getComb(out.substring(1),out2.substring(0,lvl),lvl2,skipW);
}else{
if(out2.indexOf(skipW)>=0){
if(!al.contains(out2)){
al.add(out2);
System.out.println(out2);
count++;
}
}
}
}
}
}
0
3726 views