package com.recursion;
import java.util.ArrayList;
public class SubsequenceOfString {
static final ArrayList<String> result = new ArrayList<>();
public static void main(String... args) {
String input= "abcd";
getSS(input, input.length()-1);
System.out.println(result);
System.out.println(result.size());
}
public static ArrayList<String> getSS(String seq, int pointer){
if(pointer>=0) {
addToResult(result, 0, ""+seq.charAt(pointer), result.size());
getSS(seq, pointer-1);
return result;
}
return result;
}
private static ArrayList<String> addToResult(ArrayList<String> result, int index, String character, int initialResultSize){
if(result.size() == 0) {
result.add("");
}
if(index==initialResultSize) {
return result;
}
result.add(character + result.get(index));
addToResult(result, index +1, character,initialResultSize);
return result;
}
}
This is a working code that I tried before looking at the solution, but slightly modified, want to know your feedback.