# Databricks OA
:::info
規定:
開鏡頭、share螢幕
身份驗證(準備passport)
只開一個browser
不能用其他device
可用白紙
:::
### 第一題almostSubstring
給兩個string: t, s
s長度為3
計算t 中可以找到幾個 t<sub>i</sub> t<sub>i+2</sub> t<sub>i+4</sub> 與 s 相等
ex:
t = "azcabcab"
s = "acb"
return 2 (i = 0 & i = 3)
### 第二題sumOfString
給兩個數字string,將兩個digit數字相加後相接,回傳string
ex:
"99" + "99" = "1818"
"11" + "9" = "110"
### 第三題allignMemoryAllocation
給一個memory 由 0, 1組成的array
對這個memory作操作,給另一個array 含有多個 query
每個memory block的size是8,(每個block 從 index 0, 8, 16, ... 開始)
第一種query為 alloc X, X為integer,須找到leftmost的block含有連續X數量的0,將他們都改成1 ,alloc 成功回傳index, alloc失敗回傳 -1
第二種query為 erase ID, 將目標位置的1改成0, ID 為alloc的區塊的ID,第一個alloc成功 ID = 1, 第二個alloc成功 ID = 2,erase成功的話 return erase 的 unit 的數量,不成功則return -1
最後答案 return 每個 query 回傳值組成的array
### 第四題 spltTowerintoPairs
給一個array是towers的高度
你可以增加或減少每個tower的高度 by 2
回傳 至少幾次增加或減少可以使得towers兩兩高度相等
ex:
input: [1, 4, 3, 2]
output: 2 (高度1 + 2, 與3配對 ; 高度 4 - 2 與2配對)
無解 return -1