Whhy my code is not working? Please Help…
import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
String s=sc.next();
System.out.println(findlexico(s));
}
public static ArrayList<String> findlexico(String str) //find the dictionary large
{
ArrayList<String> res=allSub(str);
ArrayList<String> mrr= new ArrayList<>();
int pos= res.indexOf(str);
for(int i=pos+1;i<res.size();i++)
{
String val=res.get(i);
mrr.add(val);
}
return mrr;
}
public static ArrayList<String> allSub(String str) //lexicographic order
{
ArrayList<String> rr1 = combi(str);
Collections.sort(rr1);
return rr1;
}
public static ArrayList<String> combi(String str) //find all permutations
{
if(str.length()==0)
{
ArrayList<String> br= new ArrayList<>();
br.add(" ");
return br;
}
char cc=str.charAt(0);
String ros=str.substring(1);
ArrayList<String> mr= new ArrayList<>();
ArrayList<String> rr=combi(ros);
for(String item:rr)
{
for(int i=0;i<item.length();i++)
{
mr.add(item.substring(0,i)+cc+item.substring(i));
}
}
return mr;
}
}