子串、非空子串、真子串、非空真子串,求数公式及例子
子串 | 非空子串 | 真子串 | 非空真子串 |
---|---|---|---|
( 1 + n ) ∗ n 2 + 1 \frac {(1+n)*n}{2}+1 2(1+n)∗n+1 | ( 1 + n ) ∗ n 2 \frac {(1+n)*n}{2} 2(1+n)∗n | ( 1 + n ) ∗ n 2 \frac {(1+n)*n}{2} 2(1+n)∗n | ( 1 + n ) ∗ n 2 − 1 \frac {(1+n)*n}{2}-1 2(1+n)∗n−1 |
举个栗子:
串 S = “database” 的非空子串数目为:( )
A、37
B、36
C、35
D、34
S=“database”,n=8,求非空子串,带入公式, ( 1 + 8 ) ∗ 8 2 \frac {(1+8)*8}{2} 2(1+8)∗8 → 9 ∗ 8 2 = 36 \frac {9*8}{2}=36 29∗8=36
是不是就想选 B 了,如果串中没有重复的,就是 36;
有重复的,减去重复项:对于第一个a来说,第二个、第三个a是重复的,也就是有两个重复项;
所以结果是 D, 36 - 2 = 34;
串 S = "www.88.com"的非空子串数目为:____。
数一数就知道 n 是多少了,n = 10,带入公式得 ( 1 + 10 ) ∗ 10 2 = 55 \frac {(1+10)*10}{2}=55 2(1+10)∗10=55;
重复项:对于第一个 w 来说,第二个、第三个 w 是重复的
对于第一个 . 来说, 第二个 . 是重复的
对于第一个 8 来说,第二个 8 是重复的对于第一个 ww 来说,第二个 ww 是重复的
所以结果是 55 - 5 = 50;