Skip to content
Related Articles

Related Articles

Contiguous unique substrings with the given length L
  • Last Updated : 10 Oct, 2019

Given a string str and an integer L. The task is to print all the unique substring of length L from string str.

Examples:

Input: str = “abca”, L=3
Output: “abc”, “bca”

Input: str = “aaaa”, L=3
Output: “aaa”

Approach:
Firstly genearate all the substring of length L and then by using set we can insert unique sub-string till the length L and then print the result.



Below is the implementation of the above approach:

C++




// C++ implementation
#include <bits/stdc++.h>
using namespace std;
  
// Function to print the
// unique sub-string of length n
void result(string s, int n)
{
    // set to store the strings
    unordered_set<string> st;
  
    for (int i = 0; i < (int)s.size(); i++) {
  
        string ans = "";
        for (int j = i; j < (int)s.size(); j++) {
  
            ans += s[j];
  
            // if the size of the string
            // is equal to 1 then insert
            if (ans.size() == n) {
  
                // inserting unique
                // sub-string of length L
                st.insert(ans);
                break;
            }
        }
    }
  
    // Printing the set of strings
    for (auto it : st)
        cout << it << " ";
}
  
// Driver Code
int main()
{
    string s = "abca";
    int n = 3;
  
    // Function calling
    result(s, n);
    return 0;
}

Java




// Java implementation of above approach
import java.util.*;
class GFG 
{
  
// Function to print the
// unique sub-String of length n
static void result(String s, int n)
{
    // set to store the Strings
    HashSet<String> st = new HashSet<String>();
  
    for (int i = 0; i < (int)s.length(); i++) 
    {
        String ans = "";
        for (int j = i; j < (int)s.length(); j++)
        {
            ans += s.charAt(j);
  
            // if the size of the String
            // is equal to 1 then insert
            if (ans.length()== n)
            {
  
                // inserting unique
                // sub-String of length L
                st.add(ans);
                break;
            }
        }
    }
  
    // Printing the set of Strings
    for (String it : st)
        System.out.print(it + " ");
}
  
// Driver Code
public static void main(String[] args)
{
    String s = "abca";
    int n = 3;
  
    // Function calling
    result(s, n);
}
}
  
// This code is contributed by 29AjayKumar

Python3




# Python3 implementation of the above approach 
  
# Function to print the 
# unique sub-string of length n 
def result(s, n) : 
  
    # set to store the strings 
    st = set(); 
  
    for i in range(len(s)) : 
  
        ans = ""; 
        for j in range(i, len(s)) :
  
            ans += s[j]; 
  
            # if the size of the string 
            # is equal to 1 then insert 
            if (len(ans) == n) :
  
                # inserting unique 
                # sub-string of length L 
                st.add(ans); 
                break
  
    # Printing the set of strings 
    for it in st :
        print(it, end = " "); 
  
# Driver Code 
if __name__ == "__main__"
  
    s = "abca"
    n = 3
  
    # Function calling 
    result(s, n); 
  
# This code is contributed by AnkitRai01

C#




// C# implementation for above approach
using System;
using System.Collections.Generic; 
      
class GFG 
{
  
// Function to print the
// unique sub-String of length n
static void result(String s, int n)
{
    // set to store the Strings
    HashSet<String> st = new HashSet<String>();
  
    for (int i = 0; i < s.Length; i++) 
    {
        String ans = "";
        for (int j = i; j < s.Length; j++)
        {
            ans += s[j];
  
            // if the size of the String
            // is equal to 1 then insert
            if (ans.Length == n)
            {
  
                // inserting unique
                // sub-String of length L
                st.Add(ans);
                break;
            }
        }
    }
  
    // Printing the set of Strings
    foreach (String it in st)
        Console.Write(it + " ");
}
  
// Driver Code
public static void Main(String[] args)
{
    String s = "abca";
    int n = 3;
  
    // Function calling
    result(s, n);
}
}
  
// This code is contributed by 29AjayKumar
Output:
bca abc

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :