C++ 中给定字符串中可能出现的长度为 n 的子字符串的计数

我们得到一个字符串 str[] 和一个数字 n。目标是找到 str[] 的所有长度为 n 的子字符串。如果字符串是“abcde”且 n=3,则长度为 3 的子字符串是“abc”、“bcd”、“cde”并且计数为 3。

让我们通过例子来理解。

输入- str[] = “计算机” n=4

输出- 给定字符串中可能的长度为 n 的子字符串的计数为 - 5

说明- 长度为 4 的子串是:“comp”、“ompu”、“mput”、“pute”、“uter”

输入- str[] = “发展” n=5

输出- 给定字符串中可能的长度为 n 的子字符串的计数为 - 7

说明- 长度为 5 的子字符串是:“devel”、“evelo”、“velop”、“elopm”、“lopme”、“opmen”、“pment”。

下面程序中使用的方法如下

如果我们取字符串str[]的长度为L,那么str[]中长度为n的子串的个数为Ln+1。如果字符串是“abcdefghi”并且 n 是 4,那么子字符串将是“abcd”、“bcde”、“cdef”、“defg”、“efgh”、“fghi”。计数是 6。也是 9-4+1=6。

  • 取一个字符串str。

  • 取n为整数。

  • 函数possible_substring(string str, int length, int n)接受一个字符串,它的长度为 n,并返回 str 长度为 n 的子字符串的计数。

  • 取一个变量计数。

  • 设置计数 = 长度-n+1。

  • 最后返回计数作为结果。

示例

#include <bits/stdc++.h>
using namespace std;
int possible_substring(string str, int length, int n){
   int count = length - n + 1;
   return count;
}
int main(){
   string str = "learning";
   int length = str.length();
   int n = 2;
   cout<<"给定字符串中可能的长度为 n 的子字符串的计数是: "<<possible_substring(str, length, n);
   return 0;
}
输出结果

如果我们运行上面的代码,它将生成以下输出 -

给定字符串中可能的长度为 n 的子字符串的计数是: 7

猜你喜欢