給定乙個字串 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」字元。
function strreverse(str));
//map方法返回的資料還是陣列
//所以要對result 進行拼接
return result.join(' ');
}console.log(strreverse("let's take leetcode contest"));
//簡潔寫法1
function strreverse2(str)).join(' ');
}//簡潔寫法2
//match(/[\w']+/g)是匹配單詞
function strreverse2(str)).join(' ');
}
總結:
string.prototype.split
string.prototype.match
array.prototype.map
array.prototype.reverse
array.prototype.join
要熟悉所有的api,知道在某些場景下的實際應用 字串反轉
據說一道微軟的面試題,要求考慮時間和空間的優化,下面給出幾種通常字串反轉的方法 1 直接陣列操作 char strreverse char str return str 這種做法原來的str沒有儲存,原來的str也改變了 2 指標操作 char strreverse char str return ...
字串反轉
include include include 方法一 將第乙個字元和最後乙個互換,第二個和倒數第二個互換,如此依次迴圈下去 char strrev1 const char str return tmp free tmp 方法二 不額外申請一片儲存字串的記憶體空間,通過中間變數來改變傳遞進來的字串裡...
字串反轉
解法一 第一次看到這題目,想到最簡單 最直覺的解法就是 遍歷字串,將第乙個字元和最後乙個交換,第二個和倒數第二個交換,依次迴圈,即可,於是有了第乙個解法 const char str return tmp 這裡是通過陣列的下標方式訪問字串的字元,實際上用指標直接操作即可。解法二正是基於此,實現 為 ...