
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Get All Substrings of a String in JavaScript Recursively
In the provided problem statement, our aim is to get all substrings of a string recursively with the help of Javascript. So here we will be creating a recursive function that can generate all possible substrings of a given input string.
Understanding the problem statement
The problem statement is asking us to create a recursive function which can generate all the possible substrings of a given input string with the help of Javascript. A substring is any continuous sequence of characters within the input string. For example: input strings "xy" so the possible substrings are "x", "y", and "xy".
Algorithm
Step 1 ? Start the program by defining the function and pass an argument in it a string to which we have to find the substrings.
Step 2 ? Define an array to hold the result array of substrings. And initialize it with zero values.
Step 3 ? Use another recursive function and pass two parameters in it as starting Index and ending Index.
Step 4 ? Declare a base case and check the condition that the ending Index is equal to the string length. If it is equal then return.
Step 5 ? Use a recursive case in which we will check that the starting index is greater than the ending index then call the recurse function again and increment the ending index by 1.
Step 6 ? Otherwise push the result by slicing the string and pass startIndex and endIndex. And again call the recurse function.
Step 7 ? Call the recurse function and return the result.
Code for the algorithm
// function to get the substrings for the given string function getAllSubstrings(str) { let result = []; function recurse(startIndex, endIndex) { // Base case if (endIndex === str.length) { return; } // Recursive case if (startIndex > endIndex) { recurse(0, endIndex + 1); } else { result.push(str.slice(startIndex, endIndex + 1)); recurse(startIndex + 1, endIndex); } } recurse(0, 0); return result; } const inputStr = "wxyz"; const subStr = getAllSubstrings(inputStr); console.log(subStr);
Complexity
The above recursive function has a time complexity of O(n^2) where n is the length of the input string. Because the function produces all possible substrings from the given input string. Additionally we contain (n^2) substrings in memory so the code has an O(n^2) space complexity.
Conclusion
In the Javascript code we have utilized a recursive strategy to locate all the possible substrings of the supplied string. With the usage of nested function the code is generating all the potential strings. The recurse function executes with different parameters until no substrings are created.