diff --git a/subsequence.cpp b/subsequence.cpp new file mode 100644 index 0000000..0df4c7e --- /dev/null +++ b/subsequence.cpp @@ -0,0 +1,37 @@ +package RecursionAndBacktracking; + +import java.util.ArrayList; +import java.util.Scanner; + +public class stringSubsequence { + + public static void main(String[] args) { + // TODO Auto-generated method stub + Scanner sc = new Scanner(System.in); + String str = sc.next(); + ArrayList res = getSubSequence(str); + System.out.println(res); + } + + private static ArrayList getSubSequence(String str) { + // TODO Auto-generated method stub + if(str.length() == 0) { + ArrayList bres = new ArrayList<>(); + bres.add(" "); + return bres; + } + + char ch = str.charAt(0); // a + String ros = str.substring(1); //bc + ArrayList rres = getSubSequence(ros); //[--,-c,b-,bc] + ArrayList mres = new ArrayList<>(); + for(String rstr: rres) { + mres.add(""+rstr); + } + for(String rstr : rres) { + mres.add(ch+rstr); + } + return mres; + } + +}