位元組跳動提前批一面演算法題

2021-10-08 04:13:17 字數 749 閱讀 6102

題目來自leetcode856原題

可惜當時沒有想出來,想到用棧的方法,想用類似於判斷有效括號的方法做

結果行不通,廢話不多說,下面直接把題目擺上來了:

給定乙個平衡括號字串 s,按下述規則計算該字串的分數:

() 得 1 分。 ab 得 a + b 分,其中 a 和 b 是平衡括號字串。 (a) 得 2 * a 分,其中 a 是平衡括號字串。

示例 1:

輸入: 「()」 輸出: 1

示例 2:

輸入: 「(())」 輸出: 2

示例 3:

輸入: 「()()」 輸出: 2

示例 4:

輸入: 「(()(()))」 輸出: 6

一般思維定式,如何按照計算器的方法,實現乘法和加法,然而這裡其實不用考慮其實感覺用到了類似於乘法分配律的感覺,遍歷字串,遇到「(」入棧,遇到右括號「)」判斷前一位是否也是「)」右括號,如果是的那麼出棧乙個左括號繼續遍歷,如果不是,那麼就使sum=sum+2^(n-1),其中n是當前棧的深度,然後再出棧乙個左括號。

思路的重點是,根據右括號的對應棧的深度,判斷出需要需要乘以幾次2

給出實現**

class

solution

else

else}}

return sum;

}}

位元組跳動校招提前批前端一面總結

middle left right middle left right 4 比翼雙飛布局通過內層加margin的方式,讓內層元素剛好定位到露出位置。5 flex布局,父元素設定diaplay flex 6 table布局,設定display table cell 8 原型鏈 9 position的屬...

網易提前批一面程式設計題

三個執行緒abc,要求列印出a b c 方法一public class threadmain public static void printb public static void printc public static void main string args class threada i...

位元組跳動一面

最後面試官你好,我叫 9x年2x周歲,xx大學18屆畢業生 目前在公司研發部任職前端開發工程師,從事前端研發工作有2年了 我們公司的主要業務是關於企業融資和企業貸款這方面的 我目前主要負責公司官網的研發和維護,主要使用的技術棧是 vue 在公司官網開發中具體負責專案的管理,頁面結構的搭建,企業管理,...