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(stringstr,intlength,intn)接受一个字符串,它的长度为n,并返回str长度为n的子字符串的计数。
取一个变量计数。
设置计数=长度-n+1。
最后返回计数作为结果。
示例
#includeusing 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的子字符串的计数是: "< 输出结果 如果我们运行上面的代码,它将生成以下输出-
给定字符串中可能的长度为n的子字符串的计数是: 7