1698 字串的不同子字串個數

2021-10-18 13:28:26 字數 1276 閱讀 5476

題目描述:

給定乙個字串 s,返回 s 的不同子字串的個數。

字串的 子字串 是由原字串刪除開頭若干個字元(可能是 0 個)並刪除結尾若干個字元(可能是 0 個)形成的字串。

示例 1:

輸入:s = 「aabbaba」

輸出:21

解釋:不同子字串的集合是 [「a」,「b」,「aa」,「bb」,「ab」,「ba」,「aab」,「abb」,「bab」,「bba」,「aba」,「aabb」,「abba」,「bbab」,「baba」,「aabba」,「abbab」,「bbaba」,「aabbab」,「abbaba」,「aabbaba」]

示例 2:

輸入:s = 「abcdefg」

輸出:28

1 <= s.length <= 500

s 由小寫英文本母組成。

高階:你可以以 o(n) 時間複雜度解決此問題嗎?

方法1:

(1)使用雜湊進行統計,超時;

class

solution

}return mp.

size()

;}};

方法2:

主要思路:

(1)字典樹,超時;

class

solution};

intcountdistinct

(string s)

cur_root=cur_root-

>next[s[j]

-'a'];

}}return res;}}

;

方法3:

主要思路:

(1)使用陣列進行統計,超時;

class

solution

cur=dp[cur]

[s[j]

-'a'];

}}return res;}}

;

方法4:

主要思路:

(1)替換掉vector的陣列,過了;

class

solution

cur=dp[cur]

[s[j]

-'a'];

}}return res;}}

;

字串1 字串的旋轉

題目描述 給定乙個字串,要求將字串前面的若干個字元移到字串的尾部。例如 將字串 abcdef 的前三個字元 a b c 移到字串的尾部,那麼原字串將變成 defabc 首先想到的是將需要移動的字元乙個乙個移到字串的尾部。實現如下 public class transfet s n 1 t publi...

5 6字串的統計字串

題目 給定乙個字串str,返回str的統計字串。補充題目 給定乙個字串的統計字串cstr,再給定乙個整數index,返回cstr所代表的原始字串上的第index個字元。實現public class getcountstring string res string.valueof str.charat...

5 7 字串的統計字串 字串操作函式

題目 給定乙個字串str,返回str的統計字串。舉例 aaabbadddffc 的統計字串為 a 3 b 2 a 1 d 3 f 2 c 1 實現 include include using namespace std int tmain int argc,tchar argv string res...