📌  相关文章
📜  打印给定字符串的所有子字符串的程序

📅  最后修改于: 2022-05-13 01:57:06.951000             🧑  作者: Mango

打印给定字符串的所有子字符串的程序

给定一个字符串作为输入。我们需要编写一个程序来打印给定字符串。

例子 :

Input :  abcd
Output :  a 
          b
          c
          d
          ab
          bc
          cd
          abc
          bcd
          abcd

我们可以运行三个嵌套循环,最外层循环选择一个起始字符,中间循环将所选择字符右侧的所有字符视为子字符串的结束字符。最里面的循环打印从当前选取的起点到选取的终点的字符。

C++
// C++ program to print all possible
// substrings of a given string
 
#include
using namespace std;
 
// Function to print all sub strings
void subString(char str[], int n)
{
    // Pick starting point
    for (int len = 1; len <= n; len++)
    {   
        // Pick ending point
        for (int i = 0; i <= n - len; i++)
        {
            //  Print characters from current
            // starting point to current ending
            // point. 
            int j = i + len - 1;           
            for (int k = i; k <= j; k++)
                cout << str[k];
             
            cout << endl;
        }
    }
}
 
// Driver program to test above function
int main()
{
    char str[] = "abc";
    subString(str, strlen(str));
    return 0;
}


Java
//Java program to print all possible
// substrings of a given string
 
class GFG {
 
// Function to print all sub strings
    static void subString(char str[], int n) {
        // Pick starting point
        for (int len = 1; len <= n; len++) {
            // Pick ending point
            for (int i = 0; i <= n - len; i++) {
                //  Print characters from current
                // starting point to current ending
                // point. 
                int j = i + len - 1;
                for (int k = i; k <= j; k++) {
                    System.out.print(str[k]);
                }
 
                System.out.println();
            }
        }
    }
 
// Driver program to test above function
    public static void main(String[] args) {
        char str[] = {'a', 'b', 'c'};
        subString(str, str.length);
 
    }
}
// This code is contributed by PrinciRaj1992


Python
# Python3 program to print all possible
# substrings of a given string
 
 
# Function to print all sub strings
def subString(Str,n):
     
    # Pick starting point
    for Len in range(1,n + 1):
         
        # Pick ending point
        for i in range(n - Len + 1):
             
            # Print characters from current
            # starting point to current ending
            # point.
            j = i + Len - 1
 
            for k in range(i,j + 1):
                print(Str[k],end="")
            print()
             
# Driver program to test above function
Str = "abc"
subString(Str,len(Str))
 
# This code is contributed by mohit kumar


C#
// C# program to print all possible
// substrings of a given string
using System;
 
public class GFG {
 
    // Function to print all sub
    // strings
    static void subString(string str,
                               int n)
    {
         
        // Pick starting point
        for (int len = 1; len <= n;
                               len++)
        {
            // Pick ending point
            for (int i = 0;
                    i <= n - len; i++)
            {
                // Print characters
                // from current
                // starting point to
                // current ending
                // point.
                int j = i + len - 1;
                 
                for (int k = i; k <= j;
                                    k++)
                    Console.Write(str[k]);
                 
                Console.WriteLine();
            }
        }
    }
     
    // Driver program to test
    // above function
    static public void Main ()
    {
        string str = "abc";
        subString(str, str.Length);
    }
}
 
// This code is contributed by anuj_67.


PHP


Javascript


C++
// C++ program to print all possible
// substrings of a given string
#include
using namespace std;
 
// Function to print all sub strings
void subString(string s, int n)
{
    // Pick starting point in outer loop
    // and lengths of different strings for
    // a given starting point
    for (int i = 0; i < n; i++)
        for (int len = 1; len <= n - i; len++)
            cout << s.substr(i, len) << endl;
}
 
// Driver program to test above function
int main()
{
    string s = "abcd";
    subString(s,s.length());
    return 0;
}


Java
// Java program to print all substrings of a string
public class GFG {
 
    // Function to print all substring
    public static void SubString(String str, int n)
    {
       for (int i = 0; i < n; i++)
           for (int j = i+1; j <= n; j++)
            
                // Please refer below article for details
                // of substr in Java
                // https://www.geeksforgeeks.org/java-lang-string-substring-java/
                System.out.println(str.substring(i, j));
    }
 
    public static void main(String[] args)
    {
        String str = "abcd";
        SubString(str, str.length());
    }
}
 
// This code is contributed by ASHISH KUMAR PATEL


Python3
# Python program to print all possible
# substrings of a given string
  
# Function to print all sub strings
def subString(s, n):
    # Pick starting point in outer loop
    # and lengths of different strings for
    # a given starting point
    for i in range(n):
        for len in range(i+1,n+1):
            print(s[i: len]);
 
# Driver program to test above function
s = "abcd";
subString(s,len(s));
 
# This code is contributed by princiraj1992


C#
// C# program to print all substrings of a string
using System;
 
public class GFG {
 
    // Function to print all substring
    public static void SubString(String str, int n)
    {
    for (int i = 0; i < n; i++)
        for (int j = 1; j <= n - i; j++)
             
                // Please refer below article for details
                // of substr in Java
                // https://www.geeksforgeeks.org/java-lang-string-substring-java/
                Console.WriteLine(str.Substring(i, j));
    }
 
    public static void Main()
    {
        String str = "abcd";
        SubString(str, str.Length);
    }
}
 
/*This code is contributed by PrinciRaj1992*/


Javascript


C++
/*
 * C++ program to print all possible
 * substrings of a given string
 * without checking for duplication.
 */
 
#include
using namespace std;
 
/*
 * Function to print all (n * (n + 1)) / 2
 * substrings of a given string s of length n.
 */
void printAllSubstrings(string s, int n)
{
    /*
     * Fix start index in outer loop.
     * Reveal new character in inner loop till end of string.
     * Print till-now-formed string.
     */
    for (int i = 0; i < n; i++)
    {
        char temp[n - i + 1];
        int tempindex = 0;
        for (int j = i; j < n; j++)
        {
            temp[tempindex++] = s[j];
            temp[tempindex] = '\0';
            printf("%s\n", temp);
        }
    }
}
 
// Driver program to test above function
int main()
{
    string s = "Geeky";
    printAllSubstrings(s, s.length());
    return 0;
}


Java
// Java program to print all possible
// subStrings of a given String
// without checking for duplication.
import java.io.*;
 
class GFG{
     
// Function to print all (n * (n + 1)) / 2
// subStrings of a given String s of length n.
public static void printAllSubStrings(String s,
                                      int n)
{
     
    // Fix start index in outer loop.
    // Reveal new character in inner
    // loop till end of String.
    // Print till-now-formed String.
    for(int i = 0; i < n; i++)
    {
        char[] temp = new char[n - i + 1];
        int tempindex = 0;
         
        for(int j = i; j < n; j++)
        {
            temp[tempindex++] = s.charAt(j);
            temp[tempindex] = '\0';
            System.out.println(temp);
        }
    }
}
 
// Driver code
public static void main(String[] args)
{
    String s = "Geeky";
     
    printAllSubStrings(s, s.length());
}
}
 
// This code is contributed by avanitrachhadiya2155


Python3
'''
* Python3 program to print all possible
* substrings of a given string
* without checking for duplication.
'''
 
 
'''
* Function to print all (n * (n + 1)) / 2
* substrings of a given string s of length n.
'''
def printAllSubstrings(s, n):
 
    # Fix start index in outer loop.
    # Reveal new character in inner loop till end of string.
    # Print till-now-formed string.
    for i in range(n):
        temp=""
        for j in range(i,n):
            temp+=s[j]
            print(temp)
 
# Driver program to test above function
 
s = "Geeky"
printAllSubstrings(s, len(s))
 
# This code is contributed by shubhamsingh10


C#
// C# program to print all possible
// subStrings of a given String
// without checking for duplication.
using System;
  
class GFG{
  
// Function to print all (n * (n + 1)) / 2
// subStrings of a given String s of length n.
public static void printAllSubStrings(String s, int n)
{
    // Fix start index in outer loop.
    // Reveal new character in inner
    // loop till end of String.
    // Print till-now-formed String.
    for(int i = 0; i < n; i++)
    {
        char[] temp = new char[n - i + 1];
        int tempindex = 0;
         
        for(int j = i; j < n; j++)
        {
            temp[tempindex++] = s[j];
            temp[tempindex] = '\0';
            Console.WriteLine(temp);
        }
    }
}
  
// Driver code
public static void Main()
{
    String s = "Geeky";
     
    printAllSubStrings(s, s.Length);
}
}
 
// This code is contributed by Shubhamsingh10


Javascript


C++
// CPP program for the above approach
#include 
using namespace std;
void printSubstrings(string str)
{
     
    // finding the length of the string
    int n = str.length();
     
    // outermost for loop
    // this is for the selection
    // of starting point
    for (int i = 0; i < n; i++) {
       
        // 2nd for loop is for selection
        // of ending point
        for (int j = i; j < n; j++) {
           
            // 3rd loop is for printing from
            // starting point to ending point
            for (int k = i; k <= j; k++) {
                cout << str[k];
            }
           
            // changing the line after printing
            // from starting point to ending point
            cout << endl;
        }
    }
}
 
// Driver Code
int main()
{
    string str = "abcd";
    printSubstrings(str);
 
    return 0;
}


C
// C program for the above approach
#include 
void printSubstrings(char str[])
{
     
    // outermost for loop
    // this is for the selection
    // of starting point
    for (int start = 0; str[start] != '\0'; start++) {
         
        // 2nd for loop is for selection
        // of ending point
        for (int end = start; str[end] != '\0'; end++) {
             
            // 3rd loop is for printing from
            // starting point to ending point
            for (int i = start; i <= end; i++) {
                printf("%c", str[i]);
            }
           
            // changing the line after printing
            // from starting point to ending point
            printf("\n");
        }
    }
}
 
// Driver Code
int main()
{
 
    // code
    char str[] = { 'a', 'b', 'c', 'd', '\0' };
    // calling the method to print the substring
    printSubstrings(str);
    return 0;
}


Java
// Java program for the above approach
import java.io.*;
 
class GFG {
    public static void printSubstrings(String str)
    {
         
        // finding the length of the string
        int n = str.length();
       
        // outermost for loop
        // this is for the selection
        // of starting point
        for (int i = 0; i < n; i++) {
           
            // 2nd for loop is for selection
            // of ending point
            for (int j = i; j < n; j++) {
               
                // 3rd loop is for printing from
                // starting point to ending point
                for (int k = i; k <= j; k++) {
                    System.out.print(str.charAt(k));
                }
               
                // changing the line after printing
                // from starting point to ending point
                System.out.println();
            }
        }
    }
   
    // Driver Code
    public static void main(String[] args)
    {
        String str = "abcd";
 
        // calling method for printing substring
        printSubstrings(str);
    }
}


Python3
# Python program for the above approach
def printSubstrings(string, n):
 
  # this is for the selection
    # of starting point
    for i in range(n):
       
        # 2nd for loop is for selection
        # of ending point
        for j in range(i, n):
           
            # 3rd loop is for printing from
            # starting point to ending point
            for k in range(i, (j + 1)):
                print(string[k], end="")
                 
            # changing the line after printing
            # from starting point to ending point
            print()
 
# Driver Code
string = "abcd"
# calling the method to print the substring
printSubstrings(string, len(string))


C#
// C# program for the above approach
using System;
public class GFG {
    public static void printSubstrings(String str)
    {
         
        // finding the length of the string
        int n = str.Length;
       
        // outermost for loop
        // this is for the selection
        // of starting point
        for (int i = 0; i < n; i++) {
           
            // 2nd for loop is for selection
            // of ending point
            for (int j = i; j < n; j++) {
               
                // 3rd loop is for printing from
                // starting point to ending point
                for (int k = i; k <= j; k++) {
                    Console.Write(str[k]);
                }
               
                // changing the line after printing
                // from starting point to ending point
                Console.WriteLine();
            }
        }
    }
   
    // Driver Code
    public static void Main(String[] args)
    {
        String str = "abcd";
 
        // calling method for printing substring
        printSubstrings(str);
    }
}
 
// This code is contributed by gauravrajput1


Javascript


C++
// CPP program for the above approach
 
#include 
 
using namespace std;
 
void printSubstrings(string str)
{
 
    // First loop for starting index
    for (int i = 0; i < str.length(); i++) {
        string subStr;
        // Second loop is generating sub-string
        for (int j = i; j < str.length(); j++) {
            subStr += str[j];
            cout << subStr << endl;
        }
    }
}
 
// Driver Code
 
int main()
{
    string str = "abcd";
    printSubstrings(str);
    return 0;
    //    this code is contributed by defcdr
}


Java
// JAVA program for the above approach
import java.util.*;
 
class GFG{
 
static void printSubStrings(String str)
{
 
    // First loop for starting index
    for (int i = 0; i < str.length(); i++) {
        String subStr="";
       
        // Second loop is generating sub-String
        for (int j = i; j < str.length(); j++) {
            subStr += str.charAt(j);
            System.out.print(subStr +"\n");
        }
    }
}
 
// Driver Code
public static void main(String[] args)
{
    String str = "abcd";
    printSubStrings(str);
}
}
 
// This code is contributed by gauravrajput1


Python3
# Python program for the above approach
def printSubStrings(str):
 
    # First loop for starting index
    for i in range(len(str)):
        subStr = "";
 
        # Second loop is generating sub-String
        for j in range(i,len(str)):
            subStr += str[j];
            print(subStr + "");
         
# Driver Code
if __name__ == '__main__':
    str = "abcd";
    printSubStrings(str);
     
# This code is contributed by umadevi9616


C#
// C# program for the above approach
using System;
 
public class GFG{
 
static void printSubStrings(String str)
{
 
    // First loop for starting index
    for (int i = 0; i < str.Length; i++) {
        String subStr="";
       
        // Second loop is generating sub-String
        for (int j = i; j < str.Length; j++) {
            subStr += str[j];
            Console.Write(subStr +"\n");
        }
    }
}
 
// Driver Code
public static void Main(String[] args)
{
    String str = "abcd";
    printSubStrings(str);
}
}
 
// This code is contributed by gauravrajput1


Javascript


输出
a
b
c
ab
bc
abc

方法二(使用 substr()函数)
s.substr(i, len) 从字符串s 中的索引 i 开始打印长度为 'len' 的子字符串。

C++

// C++ program to print all possible
// substrings of a given string
#include
using namespace std;
 
// Function to print all sub strings
void subString(string s, int n)
{
    // Pick starting point in outer loop
    // and lengths of different strings for
    // a given starting point
    for (int i = 0; i < n; i++)
        for (int len = 1; len <= n - i; len++)
            cout << s.substr(i, len) << endl;
}
 
// Driver program to test above function
int main()
{
    string s = "abcd";
    subString(s,s.length());
    return 0;
}

Java

// Java program to print all substrings of a string
public class GFG {
 
    // Function to print all substring
    public static void SubString(String str, int n)
    {
       for (int i = 0; i < n; i++)
           for (int j = i+1; j <= n; j++)
            
                // Please refer below article for details
                // of substr in Java
                // https://www.geeksforgeeks.org/java-lang-string-substring-java/
                System.out.println(str.substring(i, j));
    }
 
    public static void main(String[] args)
    {
        String str = "abcd";
        SubString(str, str.length());
    }
}
 
// This code is contributed by ASHISH KUMAR PATEL

Python3

# Python program to print all possible
# substrings of a given string
  
# Function to print all sub strings
def subString(s, n):
    # Pick starting point in outer loop
    # and lengths of different strings for
    # a given starting point
    for i in range(n):
        for len in range(i+1,n+1):
            print(s[i: len]);
 
# Driver program to test above function
s = "abcd";
subString(s,len(s));
 
# This code is contributed by princiraj1992

C#

// C# program to print all substrings of a string
using System;
 
public class GFG {
 
    // Function to print all substring
    public static void SubString(String str, int n)
    {
    for (int i = 0; i < n; i++)
        for (int j = 1; j <= n - i; j++)
             
                // Please refer below article for details
                // of substr in Java
                // https://www.geeksforgeeks.org/java-lang-string-substring-java/
                Console.WriteLine(str.Substring(i, j));
    }
 
    public static void Main()
    {
        String str = "abcd";
        SubString(str, str.Length);
    }
}
 
/*This code is contributed by PrinciRaj1992*/

Javascript


输出
a
ab
abc
abcd
b
bc
bcd
c
cd
d

此方法由Ravi Shankar Rai提供

方法3(使用前一个子串生成一个子串)

C++

/*
 * C++ program to print all possible
 * substrings of a given string
 * without checking for duplication.
 */
 
#include
using namespace std;
 
/*
 * Function to print all (n * (n + 1)) / 2
 * substrings of a given string s of length n.
 */
void printAllSubstrings(string s, int n)
{
    /*
     * Fix start index in outer loop.
     * Reveal new character in inner loop till end of string.
     * Print till-now-formed string.
     */
    for (int i = 0; i < n; i++)
    {
        char temp[n - i + 1];
        int tempindex = 0;
        for (int j = i; j < n; j++)
        {
            temp[tempindex++] = s[j];
            temp[tempindex] = '\0';
            printf("%s\n", temp);
        }
    }
}
 
// Driver program to test above function
int main()
{
    string s = "Geeky";
    printAllSubstrings(s, s.length());
    return 0;
}

Java

// Java program to print all possible
// subStrings of a given String
// without checking for duplication.
import java.io.*;
 
class GFG{
     
// Function to print all (n * (n + 1)) / 2
// subStrings of a given String s of length n.
public static void printAllSubStrings(String s,
                                      int n)
{
     
    // Fix start index in outer loop.
    // Reveal new character in inner
    // loop till end of String.
    // Print till-now-formed String.
    for(int i = 0; i < n; i++)
    {
        char[] temp = new char[n - i + 1];
        int tempindex = 0;
         
        for(int j = i; j < n; j++)
        {
            temp[tempindex++] = s.charAt(j);
            temp[tempindex] = '\0';
            System.out.println(temp);
        }
    }
}
 
// Driver code
public static void main(String[] args)
{
    String s = "Geeky";
     
    printAllSubStrings(s, s.length());
}
}
 
// This code is contributed by avanitrachhadiya2155

Python3

'''
* Python3 program to print all possible
* substrings of a given string
* without checking for duplication.
'''
 
 
'''
* Function to print all (n * (n + 1)) / 2
* substrings of a given string s of length n.
'''
def printAllSubstrings(s, n):
 
    # Fix start index in outer loop.
    # Reveal new character in inner loop till end of string.
    # Print till-now-formed string.
    for i in range(n):
        temp=""
        for j in range(i,n):
            temp+=s[j]
            print(temp)
 
# Driver program to test above function
 
s = "Geeky"
printAllSubstrings(s, len(s))
 
# This code is contributed by shubhamsingh10

C#

// C# program to print all possible
// subStrings of a given String
// without checking for duplication.
using System;
  
class GFG{
  
// Function to print all (n * (n + 1)) / 2
// subStrings of a given String s of length n.
public static void printAllSubStrings(String s, int n)
{
    // Fix start index in outer loop.
    // Reveal new character in inner
    // loop till end of String.
    // Print till-now-formed String.
    for(int i = 0; i < n; i++)
    {
        char[] temp = new char[n - i + 1];
        int tempindex = 0;
         
        for(int j = i; j < n; j++)
        {
            temp[tempindex++] = s[j];
            temp[tempindex] = '\0';
            Console.WriteLine(temp);
        }
    }
}
  
// Driver code
public static void Main()
{
    String s = "Geeky";
     
    printAllSubStrings(s, s.Length);
}
}
 
// This code is contributed by Shubhamsingh10

Javascript


输出
G
Ge
Gee
Geek
Geeky
e
ee
eek
eeky
e
ek
eky
k
ky
y

方法4(使用三个嵌套循环)

C++

// CPP program for the above approach
#include 
using namespace std;
void printSubstrings(string str)
{
     
    // finding the length of the string
    int n = str.length();
     
    // outermost for loop
    // this is for the selection
    // of starting point
    for (int i = 0; i < n; i++) {
       
        // 2nd for loop is for selection
        // of ending point
        for (int j = i; j < n; j++) {
           
            // 3rd loop is for printing from
            // starting point to ending point
            for (int k = i; k <= j; k++) {
                cout << str[k];
            }
           
            // changing the line after printing
            // from starting point to ending point
            cout << endl;
        }
    }
}
 
// Driver Code
int main()
{
    string str = "abcd";
    printSubstrings(str);
 
    return 0;
}

C

// C program for the above approach
#include 
void printSubstrings(char str[])
{
     
    // outermost for loop
    // this is for the selection
    // of starting point
    for (int start = 0; str[start] != '\0'; start++) {
         
        // 2nd for loop is for selection
        // of ending point
        for (int end = start; str[end] != '\0'; end++) {
             
            // 3rd loop is for printing from
            // starting point to ending point
            for (int i = start; i <= end; i++) {
                printf("%c", str[i]);
            }
           
            // changing the line after printing
            // from starting point to ending point
            printf("\n");
        }
    }
}
 
// Driver Code
int main()
{
 
    // code
    char str[] = { 'a', 'b', 'c', 'd', '\0' };
    // calling the method to print the substring
    printSubstrings(str);
    return 0;
}

Java

// Java program for the above approach
import java.io.*;
 
class GFG {
    public static void printSubstrings(String str)
    {
         
        // finding the length of the string
        int n = str.length();
       
        // outermost for loop
        // this is for the selection
        // of starting point
        for (int i = 0; i < n; i++) {
           
            // 2nd for loop is for selection
            // of ending point
            for (int j = i; j < n; j++) {
               
                // 3rd loop is for printing from
                // starting point to ending point
                for (int k = i; k <= j; k++) {
                    System.out.print(str.charAt(k));
                }
               
                // changing the line after printing
                // from starting point to ending point
                System.out.println();
            }
        }
    }
   
    // Driver Code
    public static void main(String[] args)
    {
        String str = "abcd";
 
        // calling method for printing substring
        printSubstrings(str);
    }
}

Python3

# Python program for the above approach
def printSubstrings(string, n):
 
  # this is for the selection
    # of starting point
    for i in range(n):
       
        # 2nd for loop is for selection
        # of ending point
        for j in range(i, n):
           
            # 3rd loop is for printing from
            # starting point to ending point
            for k in range(i, (j + 1)):
                print(string[k], end="")
                 
            # changing the line after printing
            # from starting point to ending point
            print()
 
# Driver Code
string = "abcd"
# calling the method to print the substring
printSubstrings(string, len(string))

C#

// C# program for the above approach
using System;
public class GFG {
    public static void printSubstrings(String str)
    {
         
        // finding the length of the string
        int n = str.Length;
       
        // outermost for loop
        // this is for the selection
        // of starting point
        for (int i = 0; i < n; i++) {
           
            // 2nd for loop is for selection
            // of ending point
            for (int j = i; j < n; j++) {
               
                // 3rd loop is for printing from
                // starting point to ending point
                for (int k = i; k <= j; k++) {
                    Console.Write(str[k]);
                }
               
                // changing the line after printing
                // from starting point to ending point
                Console.WriteLine();
            }
        }
    }
   
    // Driver Code
    public static void Main(String[] args)
    {
        String str = "abcd";
 
        // calling method for printing substring
        printSubstrings(str);
    }
}
 
// This code is contributed by gauravrajput1

Javascript


输出
a
ab
abc
abcd
b
bc
bcd
c
cd
d

时间复杂度: O(N 3 )

空间复杂度: O(1),其中 N 是输入字符串的长度

方法 5(使用两个嵌套循环)

C++

// CPP program for the above approach
 
#include 
 
using namespace std;
 
void printSubstrings(string str)
{
 
    // First loop for starting index
    for (int i = 0; i < str.length(); i++) {
        string subStr;
        // Second loop is generating sub-string
        for (int j = i; j < str.length(); j++) {
            subStr += str[j];
            cout << subStr << endl;
        }
    }
}
 
// Driver Code
 
int main()
{
    string str = "abcd";
    printSubstrings(str);
    return 0;
    //    this code is contributed by defcdr
}

Java

// JAVA program for the above approach
import java.util.*;
 
class GFG{
 
static void printSubStrings(String str)
{
 
    // First loop for starting index
    for (int i = 0; i < str.length(); i++) {
        String subStr="";
       
        // Second loop is generating sub-String
        for (int j = i; j < str.length(); j++) {
            subStr += str.charAt(j);
            System.out.print(subStr +"\n");
        }
    }
}
 
// Driver Code
public static void main(String[] args)
{
    String str = "abcd";
    printSubStrings(str);
}
}
 
// This code is contributed by gauravrajput1

Python3

# Python program for the above approach
def printSubStrings(str):
 
    # First loop for starting index
    for i in range(len(str)):
        subStr = "";
 
        # Second loop is generating sub-String
        for j in range(i,len(str)):
            subStr += str[j];
            print(subStr + "");
         
# Driver Code
if __name__ == '__main__':
    str = "abcd";
    printSubStrings(str);
     
# This code is contributed by umadevi9616

C#

// C# program for the above approach
using System;
 
public class GFG{
 
static void printSubStrings(String str)
{
 
    // First loop for starting index
    for (int i = 0; i < str.Length; i++) {
        String subStr="";
       
        // Second loop is generating sub-String
        for (int j = i; j < str.Length; j++) {
            subStr += str[j];
            Console.Write(subStr +"\n");
        }
    }
}
 
// Driver Code
public static void Main(String[] args)
{
    String str = "abcd";
    printSubStrings(str);
}
}
 
// This code is contributed by gauravrajput1

Javascript


输出
a
ab
abc
abcd
b
bc
bcd
c
cd
d

时间复杂度:O(N2)
辅助空间:O(1),其中 N 是输入字符串的长度