子串
定義:串中任意個連續的字符組成的子序列稱為該串的子串
求出“adereegfbw”子串的數目?
空串是所有串的字串,所以當字串長度為0時,字串為空串。
字串長度為0:
空串 (共1個)
字串長度為1:
a,d,e,r,e,e,g,f,b,w (共10個)
字串長度為2:
ad,de,er,re,ee,eg,gf,fb,bw (共9個)
字串長度為3:
ade,der,ere,ree,eeg,egf,gfb,fbw (共8個)
字串長度為4:
ader,dere,eree,reeg,eegf,egfb,gfbw (共7個)
字串長度為5:
adere,deree,ereeg,reegf,eegfb,egfbw (共6個)
字串長度為6:
aderee,dereeg,ereegf,reegfb,eegfbw (共5個)
字串長度為7:
adereeg,dereegf,ereegfb,reegfbw (共4個)
字串長度為8:
adereegf,dereegfb,ereegfbw (共3個)
字串長度為9:
adereegfb,dereegfbw (共2個)
字串長度為10:
adereegfbw (共1個)
因此
“adereegfbw”含有重復子串的子串數目為1+10+9+8+7+6+5+4+3+2+1=56
通過觀察,可得
最小字串=空串
最大字串=其本身
如果一個字串的長度或字符個數為n,那么子串數目=n(n+1)/2+1 (最后1代表空串)
