本文概述
- C ++
- Java
- python
- C#
- 的PHP
- C ++
- Java
- Python3
- C#
- C ++
- Python3
- C#
例子 :
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
【算法题(如何打印给定字符串的所有子字符串())】方法2(使用substr()函数)
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
该方法来自拉维·香卡莱(Ravi Shankar Rai)
方法3(使用先前的子字符串生成子字符串)
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
推荐阅读
- Traveloka SDE3面试体验详细分享(校园)
- C++如何使用指针与引用(它们有什么区别?)
- Java如何使用方法(用法解释和代码示例)
- 高盛面试经验|S22(校园内面试分析概要文件)
- PHP如何使用readdir()函数(代码用法示例)
- CSS如何使用伪类和伪类选择器(代码示例)
- 如何在Django中创建应用程序()
- Win8系统怎样设置IE浏览器自动删除历史记录?
- 如何修好Win8提示出错为Win32k.sys的蓝屏?