算法题：如何打印给定字符串的所有子字符串？

2021年3月27日14:55:44 发表评论 753 次浏览

本文概述

``````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<bits/stdc++.h>
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

``````<?php
// PHP program to print all possible
// substrings of a given string

// Function to print all sub strings
function subString( \$str , \$n )
{

// Pick starting point
for ( \$len = 1; \$len <= \$n ; \$len ++)
{

// Pick ending point
for ( \$i = 0; \$i <= \$n - \$len ; \$i ++)
{

// Print characters from current
// starting point to current ending
// point.
\$j = \$i + \$len - 1;
for ( \$k = \$i ; \$k <= \$j ; \$k ++)
echo \$str [ \$k ];

echo "\n" ;
}
}
}

// Driver Code
\$str = "abc" ;
subString( \$str , strlen ( \$str ));

// This code is contributed by nitin mittal.
?>``````

``````a
b
c
ab
bc
abc``````

s.substr(i, len)从字符串s中的索引i开始打印长度为len的子字符串。

C ++

``````// C++ program to print all possible
// substrings of a given string
#include<bits/stdc++.h>
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.lsbin.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.lsbin.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*/``````

``````a
ab
abc
abcd
b
bc
bcd
c
cd
d``````

C ++

``````/*
* C++ program to print all possible
* substrings of a given string
* without checking for duplication.
*/

#include<bits/stdc++.h>
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;
}``````

Python3

``````'''
* Python3 program to prall possible
* substrings of a given string
* without checking for duplication.
'''

'''
* Function to prall (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.
# Prtill-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``````

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