LeetCode 696. 计数二进制子串
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 696. 计数二进制子串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個字符串 s,計算具有相同數量0和1的非空(連續)子字符串的數量,并且這些子字符串中的所有0和所有1都是組合在一起的。
重復出現的子串要計算它們出現的次數。
示例 1 : 輸入: "00110011" 輸出: 6 解釋: 有6個子串具有相同數量的連續1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。 請注意,一些重復出現的子串要計算它們出現的次數。 另外,“00110011”不是有效的子串,因為所有的0(和1)沒有組合在一起。示例 2 : 輸入: "10101" 輸出: 4 解釋: 有4個子串:“10”,“01”,“10”,“01”,它們具有相同數量的連續1和0。 注意: s.length 在1到50,000之間。 s 只包含“0”或“1”字符。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/count-binary-substrings
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 一次遍歷解題
題目的意思是:有多少對子串,其0,1個數相同,且其所有的0和0,1和1在一起的
- 用prev記錄前面相同的有多少(例如3個0)
- 用cur記錄后面相同的有多少(例如2個1)
- 每當prev>=cur時就有一個滿足題目的子串
總結
以上是生活随笔為你收集整理的LeetCode 696. 计数二进制子串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 80. 删除排序数组中
- 下一篇: 程序员面试金典 - 面试题 17.11.