JavaScript Program to Print all Subsequences of a String
Last Updated :
27 May, 2024
A subsequence is a sequence that can be derived from another sequence by deleting zero or more elements without changing the order of the remaining elements. Subsequences of a string can be found with different methods here, we are using the Recursion method, Iteration method and Bit manipulation method.
Example: The example shows the input string and the corresponding output
Input: 'abc'
Output:
abc
ab
ac
a
bc
b
c
Method 1: Using Recursion
- We can recursively generate subsequences by including or excluding each character in the string.
- Create a function generateSubsequence with two parameters input and output.
- Check input.length==0 by using if condition.
- Here, value of inputString= "abc".
- Then, call the function generateSubsequence.
Example: This example prints all subsequences of a string in JavaScript using the Recursion method.
JavaScript
function generateSubsequence(input, output)
{
// Base Case
if (input.length==0) {
console.log(output);
return;
}
// Include
generateSubsequence(
input.substring(1), output + input[0]);
// Exclude
generateSubsequence(
input.substring(1), output);
}
const inputString = 'abc';
generateSubsequence(inputString,"");
Method 2: Using Iteration
- We can use iterative methods to generate all possible combinations of characters in the string.
- Create a function generateSubsequence with one parameter input.
- Inside the function store the length of the input in variable length. Iterate and check conditions by using for loop and if condition respectively.
- Here, the value of inputString= "abc".
- Then, call the function generateSubsequence with argument inputstring to get output.
Example: This example prints all subsequences of a string in JavaScript using the Iteration method.
JavaScript
function generateSubsequences(input) {
const subsequences = [];
const length = input.length;
for (
let i = 0;
i < 1 << length;
i++
) {
let currentSubsequence = "";
for (
let j = 0;
j < length;
j++
) {
if (i & (1 << j)) {
currentSubsequence +=
input[j];
}
}
subsequences.push(
currentSubsequence
);
}
return subsequences;
}
const inputString = "abc";
const allSubsequences =
generateSubsequences(inputString);
console.log(allSubsequences);
Output[
'', 'a', 'b',
'ab', 'c', 'ac',
'bc', 'abc'
]
Method 3: Using Bit Manipulation
- We can use bit manipulation to represent the inclusion or exclusion of each character in the subsequence.
- Create a function generateSubsequence with one parameter input.
- Inside the function store the length of the input in variable length. Iterate and check conditions by using for loop and if condition respectively.
- Here,the value of inputString= "abc".
- Then, call the function generateSubsequence with argument inputstring to get output.
Example: This example prints all subsequences of a string in JavaScript using the Bit manipulation method.
JavaScript
function generateSubsequences(input) {
const subsequences = [];
const length = input.length;
for (
let mask = 0;
mask < 1 << length;
mask++
) {
let currentSubsequence = "";
for (
let bit = 0;
bit < length;
bit++
) {
if (mask & (1 << bit)) {
currentSubsequence +=
input[bit];
}
}
subsequences.push(
currentSubsequence
);
}
return subsequences;
}
const inputString = "abc";
const allSubsequences =
generateSubsequences(inputString);
console.log(allSubsequences);
Output[
'', 'a', 'b',
'ab', 'c', 'ac',
'bc', 'abc'
]
Method 4: Using Queue
Using a queue, iteratively generate subsequences by appending each character to existing subsequences. Initially, the queue contains an empty string. For each character in the string, append it to each string in the queue and enqueue the result.
Example:
JavaScript
function printSubsequences(str) {
const queue = [''];
for (const char of str) {
const size = queue.length;
for (let i = 0; i < size; i++) {
queue.push(queue[i] + char);
}
}
console.log(queue);
}
printSubsequences("abcd");
Output[
'', 'a', 'b',
'ab', 'c', 'ac',
'bc', 'abc', 'd',
'ad', 'bd', 'abd',
'cd', 'acd', 'bcd',
'abcd'
]
Similar Reads
Java Program to Print all Unique Words of a String Java program to print all unique words present in the string. The task is to print all words occurring only once in the string. Illustration: Input : Welcome to Geeks for Geeks. Output : Welcome to for Input : Java is great.Python is also great. Output : Java Python also Methods: This can be done in
4 min read
Java Program to Find All Palindromic Sub-Strings of a String Given a string, the task is to count all palindrome substring in a given string. Input : aba Output : 4 Explanation : All palindrome substring are : "aba" , "a" , "b", "a" Input : TENET Output : 7 Explanation : All palindrome sub-string are : "T" , "E" , "N", "E", "T" , "ENE" , "TENET" Approach: Tak
2 min read
Javascript Program for Longest subsequence of a number having same left and right rotation Given a numeric string S, the task is to find the maximum length of a subsequence having its left rotation equal to its right rotation. Examples: Input: S = "100210601" Output: 4 Explanation: The subsequence "0000" satisfies the necessary condition. The subsequence "1010" generates the string "0101"
4 min read
Construct string having all possible strings of K letters as subsequence Given two positive integers, let's denote them as N and K. The task is to construct a string S such that all possible strings of length N formed using the first K lowercase English alphabets, appear as subsequences of S. In case there exist multiple valid solutions, the objective is to output the so
4 min read
C# - Different Ways to Find All Substrings in a String Given a string as an input we need to find all the substrings present in the given string. Example: Input: geeks Output: g e e k s ge ee ek ks gee eek eks geek eeks geeks Input: ab Output: a b abMethod 1: Using Substring() method We can find all the substrings from the given string using the Substri
3 min read
How to Get All Substrings of a Given String in PHP ? Extracting all possible substrings from a given string is a common task in text processing, pattern recognition, and various other applications in PHP programming. This operation involves generating every possible combination of characters present in the string, including both contiguous and non-con
3 min read
String Subsequence and Substring in Python Subsequence and Substring both are parts of the given String with some differences between them. Both of them are made using the characters in the given String only. The difference between them is that the Substring is the contiguous part of the string and the Subsequence is the non-contiguous part
5 min read
How to Replace the Last Occurrence of a Substring in a String in Java? In this article, we will learn about replacing the last instance of a certain substring inside a string as a typical need. We'll look at a practical Java solution for this in this post. Replace the last occurrence of a Substring in a String in JavaWe may use the lastIndexOf() method to determine the
2 min read
Java Program to Iterate Over Characters in String Given string str of length N, the task is to traverse the string and print all the characters of the given string using java. Illustration: Input : str = âGeeksforGeeksâ Output : G e e k s f o r G e e k sInput : str = "GfG" Output : G f G Methods: Using for loops(Naive approach)Using iterators (Opti
3 min read
How to Split a String into Equal Length Substrings in Java? In Java, splitting a string into smaller substrings of equal length is useful for processing large strings in manageable pieces. We can do this with the substring method of the loop. This method extracts a substring of the specified length from the input string and stores it in a list.Example:In the
3 min read