定義:串中任意個連續
的字元組成的子串行稱為該串的子串
空串是所有串的字串,所以當字串長度為
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
代表空串
)
尋找乙個字串的所有回文子字串
問題描述 生成1t字串,尋找這個字串的回文,如abcbabcbadd,其中回文為abcbaabcba,bcb,bcb,dd。問題1.如果按照某個字元分組。比如a,那麼會分為bcb,bcb兩字串。但是不要忘記abcbabcba和dd也是回文。對於分組後的字串,比如abcdedcba。那麼前後兩側做減法...
求乙個字串的所有子字串 C語言
問題描述 從控制台讀入乙個字串 長度不超過10 向控制台輸出其所有子字串 包括原字串本身 輸入形式 從控制台輸入乙個字串,字串中不含空格。輸出形式 向控制台輸出所有子字串,每行輸出乙個,先輸出長度短的子字串,長度相同時以在原字串 現的先後順序輸出。樣例輸入 abcd 樣例輸出 ab cdabbc c...
給定乙個字串,找出該字串的最長回文子串
給定乙個字串,找出該字串的最長回文子串。回文字串指的就是從左右兩邊看都一樣的字串,如aba,cddc都是回文字串。字串abbacdc存在的回文子串有abba和cdc,因此它的最長回文子串為abba。public class longpalindromic private static string ...