子串 求出乙個字串的子串數目

2022-09-23 14:33:12 字數 1272 閱讀 5973

定義:串中任意個連續

的字元組成的子串行稱為該串的子串

空串是所有串的字串,所以當字串長度為

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 ...