Dùng lồng vòng lặp với Substring(start, length).
string myStr = "pqrz";
for (int len = 1; len < myStr.Length; len++)
{
for (int start = 0; start <= myStr.Length - len; start++)
{
string substr = myStr.Substring(start, len);
Console.WriteLine(substr);
}
}
Ví dụ hoàn chỉnh
using System;
public class Demo
{
public static void Main()
{
string myStr = "pqrz";
for (int len = 1; len < myStr.Length; len++)
{
for (int start = 0; start <= myStr.Length - len; start++)
{
string substr = myStr.Substring(start, len);
Console.WriteLine(substr);
}
}
}
}
Kết quả cho "pqrz"
p q r z pq qr rz pqr qrz pqrz
Tổng số substring: n*(n+1)/2 (n = độ dài chuỗi). Ví dụ "pqrz" (n=4) => 10 substring.
Ứng dụng: Tìm palindrome, pattern matching, suffix array, DNA sequence analysis.