- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Print all subsequences of a string using Iterative Method in C++
In this problem, we are given a string and we have to find the substring from the given string. The substring to be found should start with a vowel and end with constant character.
A string is an array of characters.
The substring that is to be generated in this problem can be generated by deleting some characters of the string. And without changing the order of the string.
Input: ‘abc’ Output: ab, ac, abc
To solve this problem, we will iterate the string and fix vowels and check for the next sequence. Let’s see an algorithm to find a solution −
Algorithm
Step 1: Iterate of each character of the string, with variable i. Step 2: If the ith character is a vowel. Step 3: If the jth character is a consonant. Step 4: Add to the HashSet, substring from 1st character to jth character. Step 5: Repeat the following steps and find substrings from the string.
In the iterative approach, we will iterate over all string. From 1 to 2legth(string)−1.
Example
#include <bits/stdc++.h> using namespace std; string subString(string s, int binary){ string sub = ""; int pos; while(binary>0){ pos=log2(binary&-binary)+1; sub=s[pos-1]+sub; binary= (binary & ~(1 << (pos-1))); } reverse(sub.begin(),sub.end()); return sub; } void findAllSubStrings(string s){ map<int, set<string> > sorted_subsequence; int len = s.size(); int limit = pow(2, len); for (int i = 1; i <= limit - 1; i++) { string sub = subString(s, i); sorted_subsequence[sub.length()].insert(sub); } for (auto it : sorted_subsequence) { for (auto ii : it.second) cout<<ii<<" "; cout<<"\t"; } } int main() { string s = "wxyz"; cout<<"The substring are :\n"; findAllSubStrings(s); return 0; }
Output
The substring is −
w x y z wx wy wz xy xz yz wxy wxz wyz xyz wxyz
Advertisements
To Continue Learning Please Login
Login with Google