力扣 僅含 1 的子串數

2021-10-23 08:53:40 字數 1126 閱讀 7151

給你乙個二進位制字串 s(僅由 『0』 和 『1』 組成的字串)。

返回所有字元都為 1 的子字串的數目。

由於答案可能很大,請你將它對 10^9 + 7 取模後返回。

示例 1:

輸入:s = 「0110111」

輸出:9

解釋:共有 9 個子字串僅由 『1』 組成

「1」 -> 5 次

「11」 -> 3 次

「111」 -> 1 次

示例 2:

輸入:s = 「101」

輸出:2

解釋:子字串 「1」 在 s 中共出現 2 次

示例 3:

輸入:s = 「111111」

輸出:21

解釋:每個子字串都僅由 『1』 組成

示例 4:

輸入:s = 「000」

輸出:0

s[i] == '0' 或 s[i] == '1'

1 <= s.length <= 10^5

**

提示

*這題一不留神就溢位了,二不留神就超時了。。。。

思路的話挺簡單的,就是遍歷字串,出現1的話就看這個子串有幾個連續的「1」,將個數儲存在陣列tem裡,比如說遍歷「10110111011110」,tem的值就是1 2 3 4。然後計算長度為n的連續1字串有(1+n)n/2種組合,計算完畢後求模。

**如下:

int

numsub

(string s)

tem.

push_back

(c);

//將連續1的個數存入tem

i++;}

else

i++;}

int sum =0;

for(

int i=

0;isize()

;i++

)return sum;}}

;

力扣 最長回文子串

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。我的第一想法是暴力,然後才是中心擴充套件法 雖然知道應該用動態規劃,但是實現不出來 public string longestpalindr...

最長回文子串 力扣

5種解法 1.最長公共子串 2.暴力法 3.動態規劃 4.中心擴充套件法 5.manacher法 以下記錄大佬題解 演算法 什麼叫回文串?如果乙個字串正著讀和反著讀是一樣的,那它就是回文串。中心擴充套件演算法 我們觀察到回文中心的兩側互為映象。因此,回文可以從它的中心展開,並且只有 2n 1 個這樣...

力扣 比較含退格的字串

給定 s 和 t 兩個字串,當它們分別被輸入到空白的文字編輯器後,判斷二者是否相等,並返回結果。代表退格字元。注意 如果對空文字輸入退格字元,文字繼續為空。示例 1 輸入 s ab c t ad c 輸出 true 解釋 s 和 t 都會變成 ac 示例 2 輸入 s ab t c d 輸出 tru...