Recursion-Ascii Subsequences

 Take as input str, a string. We are concerned with all the possible ascii-subsequences of str. E.g. “ab” has following ascii-subsequences “”, “b”, “98”, “a”, “ab”, “a98”, “97”, “97b”, “9798”

a. Write a recursive function which returns the count of ascii-subsequences for a given string. Print the value returned.

b. Write a recursive function which prints all possible ascii-subsequences for a given string (void is the return type for function).

Input Format

Enter the string

Constraints

None

Output Format

Display the number of ASCII-subsequences and display all the ASCII- subsequences

Sample Input
ab
Sample Output
b 98 a ab a98 97 97b 9798 9




import java.util.Scanner;

public class ASCIISubsequence {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
String inputString = s.next();
returnSubsquence(inputString, "");
System.out.println("\n"+returnSubsquenceCount(inputString,""));
s.close();

}

private static void returnSubsquence(String inputString, String ans) {
if (inputString.length() == 0) {
System.out.print(ans+" ");
return;
}
char firstChar = inputString.charAt(0);
returnSubsquence(inputString.substring(1), ans);
returnSubsquence(inputString.substring(1), ans+firstChar);
returnSubsquence(inputString.substring(1), ans+(int)firstChar);


}

private static int returnSubsquenceCount(String inputString, String ans) {
if (inputString.length() == 0) {
//aSystem.out.print(ans+" ");
//count++;
return 1;
}
int count=0;
char firstChar = inputString.charAt(0);
count+=returnSubsquenceCount(inputString.substring(1), ans);
count+=returnSubsquenceCount(inputString.substring(1), ans+firstChar);
count+=returnSubsquenceCount(inputString.substring(1), ans+(int)firstChar);
//System.out.println(count);
return count;
}
}

Post a Comment

0 Comments