給你乙個二進位制字串 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...