1、子串:串中任意個連續的字符組成的子序列稱為該串的子串(連續、連續、連續!重要的事情說三遍)
- 備注:空串屬於子串
2、串中字符均不相同:n個字符構成的字符串,假設每個字符都不一樣,問有多少個子串
- 答案:n(n+1)/2+1
- 友情提示:每個字符均不相同
- 解析:
- 包含1個字符的子串共n個
- 包含2個字符的子串共n-1個
- 包含3個字符的子串共n-2個
- 包含4個字符的子串共n-3個
- .。。。。。
- 包含n個字符的子串共1個
- 空串1個
- 綜上所述:子串個數共:1+2+3+。。。+n+1(空串)=n(n+1)/2+1
- 實例應用:若串S=′software′,其子串的數目是()
-
- 解析:n(n+1)/2+1=8(8+1)/2+1=37
3、串中字符出現重復:字符串www.qq.com所有非空子串(兩個子串如果內容相同則只算一個)個數是()
- 答案:50
- 備注:存在相同字符,所以計算方法為總個數減去重復個數,即n(n+1)/2+1-重復個數
- 解析:包含重復子串共:n(n+1)/2+1=10(10+1)/2+1=55,減去重復:2個w,1個ww,1個q,1個.,所以共55-5=50個