計算二進位制字串

2021-10-01 13:08:18 字數 1057 閱讀 7608

![4646598ce4f12f0f484da18acbd83813.png](en-resource://database/11364:1)

![1226f6e4e21ed6df41356aa6e9e857c0.png](en-resource://database/11366:1)

遇到難度較大的題目的解題步驟

**1. 找規律**

從輸入輸出的關係來尋找規律

在題目中所給的案例中,按照順序將所有的輸入輸出寫出來(乙個輸入對應乙個輸出)

![019f877d62a59f95028863f3deaaf7cb.png](en-resource://database/11368:1)

從圖中的輸入輸出可以看出

第乙個輸出是對輸入從0位開始找子串

第二個輸出是對輸入從1位開始重複找子串

第三個輸出是對輸入從2位開始重複找子串

....

由於輸入是動態的,而且還是有規律的,每次都是往後移動一位,所以使用for迴圈或者遞迴來解決問題

由於每次都是重複找子串,所以找子串是乙個公共行為,可以將其抽出來

通過以上分析可以得出程式的編寫分為兩步:

1:外層迴圈控制每次輸入從第幾位開始

2:尋找子串

2.1 尋找子串

2.2 將子串儲存並輸出

![df153cdd0deefa315333986462be95b1.png](en-resource://database/11370:1)

**如下:

function substr(str) $)`)

if (reg.test(str)) else

}// 1. 先寫出迴圈偽**

外層的for迴圈控制第乙個查詢點的位置

// 因為從前面的分析中每次迴圈都是往右移動一位的,具有重複性,所以使用遞迴或者for迴圈

for (let i = 0, len = str.length - 1; i < len; i ++) }

return r

}console.log(substr('00110011'))

計算二進位制字串

題目描述 給定乙個字串 s,計算具有相同數量0和1的非空 連續 子字串的數量,並且這些子字串中的所有0和所有1都是組合在一起的。重複出現的子串要計算它們出現的次數。示例 1 輸入 00110011 輸出 6 解釋 有6個子串具有相同數量的連續1和0 0011 01 1100 10 0011 和 01...

字串與二進位制

單引號字串會被表示成整數值列表。c返回字元 c 的整數編碼。下面這個例子用於解析字元列表表示法,該表示法用於表示乙個任意的有符號的十進位制資料。defmodule parse do def number tail do number digits tail,0 1 enddef number tai...

字串和二進位制字串問題以及讀寫二進位制檔案

一般針對字串使用cstring和char cstring沒有長度限制,但字串以 0 為結束標誌。故要對二進位制字串進行操作,則不能使用cstring,而要用cbytearray和char。關於cstring 1 是actual字串,而不是字串指標,不需要在定義的時候指定長度 2 該類過載了 等運算子...