使用 C++ 查找字符串的子字符串数量


在本文中,您将学习如何查找给定字符串中可以形成的子字符串(非空)数量的方法。

Input : string = “moon”
Output : 10
Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and ‘moon’.

Input : string = “yellow”
Output : 21

查找解决方案的方法

假设字符串的长度为 n,因此从上面的示例中,我们了解到,为了找到所有可能的子字符串数量,我们需要添加长度为 n、(n-1)、(n-2)、(n-3)、(n-4)、......2、1 的子字符串。

子字符串的总数 = n + (n - 1) + (n - 2) + (n - 3) + (n - 4) + ……. + 2 + 1。

= n * (n + 1) / 2

因此,现在我们有了计算子字符串数量的公式,其中 n 是给定字符串的长度。

上述方法的 C++ 代码

以下是我们可以用作输入来解决给定问题的 C++ 语法 -

示例

#include<bits/stdc++.h>
using namespace std;
int main () {
   string str = "yellow";
   // finding the length of string
   int n = str.length ();
   // calculating result from formula
   int number_of_strings = n * (n + 1) / 2;
   cout << "Number of substrings of a string : " << number_of_strings;
   return 0;
}

输出

Number of substrings of a string: 21

代码解释

这是从给定字符串中查找所有可能的子字符串数量的乐观且直接的方法。

首先,在此代码中,我们从 .length() 函数中找到给定字符串的长度,并将该值放入我们上面推导出的公式中,打印存储在 result 变量中的输出。

结论

在本文中,我们解释了查找字符串中子字符串数量的方法,我们首先推导出查找所有可能的子字符串数量的公式,并根据字符串的长度使用公式获得结果。我们可以在其他语言(如 C、Java、Python 和其他语言)中编写相同的程序。我们希望您觉得本文有所帮助。

更新于:2021 年 11 月 25 日

6K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告