九章演算法 快手面試題 最長有效括號 描述

2021-10-22 08:42:34 字數 586 閱讀 2648

描述

有一些原木,現在想把這些木頭切割成一些長度相同的小段木頭,需要得到的小段的數目至少為k。給出乙個只包含』(』 和』)'的字串,找出其中最長的左右括號正確匹配的合法子串。

樣例1

輸入: "(()"

輸出: 2

解釋: 最長有效括號子串為 "()"

樣例2

輸入: ")()())"

輸出: 4

解釋: 最長有效括號子串為 "()()"

考點

題解

一般對於最長xx問題容易想到利用dp求解,在這題中利用逆向dp,設狀態dpi為從i到len - 1中,以i開頭的最長合法子串長度:

class solution     

res = max(res, dp[i]);}}

return res;

}};

更多題解參考

更多題解戳我了解

九章演算法 快手面試題 流浪劍客斯溫

描述 在物質位面 現實 中,有n 1個星球,分別為星球0,星球1,星球n。每乙個星球都有乙個傳送門,通過傳送門可以直接到達目標星球而不經過其他的星球。不過傳送門有兩個缺點。第一,從星球i通過傳送門只能到達編號比i大,且與i的差不超過limit的星球。第二,通過傳送門到達星球j,需要cost j 個金...

九章演算法 Google 面試題 有效括號字串

撰文 jz 專欄 九章演算法 給定乙個字串,由 三個字元組成,判斷是否滿足要求左括號和有括號一一對應,且對應的左括號必定在右括號前面。其中,可以被當做乙個單獨的左括號,右括號或者可以當做不存在 1.input output true 2.input output true 被當做空字元,不存在 3....

九章演算法 Google面試題 內積

描述 給定長度為n的a陣列,長度為k的b陣列 你可以從a陣列裡取k個數 規則如下 即每次可以從a陣列的最左邊或者最右邊取走乙個數,取走的數從陣列中移除 將取出的ai按取出的順序組成c陣列 求b與c的內積最大值 b與c內積為 i 0k 1bi ci 解釋1 a 1,4,3,2,5 b 1,2,3,4 ...