小公尺面試 字串解碼

2021-10-25 07:47:32 字數 1032 閱讀 5608

題目:

給定乙個經過編碼的字串,返回它解碼後的字串。

編碼規則為: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證為正整數。

你可以認為輸入字串總是有效的;輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。

此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k ,例如不會出現像 3a 或 2[4] 的輸入。

示例:

s = "3[a]2[bc]", 返回 "aaabcbc".

s = "3[a2[c]]", 返回 "accaccacc".

s = "2[abc]3[cd]ef", 返回 "abcabccdcdcdef".

解題方法:棧 

func decodestring(s string) string 

ptr := 0

for ptr < len(s) else if (cur >= 'a' && cur <= 'z' || cur >= 'a' && cur <= 'z') || cur == '[' else

for stk[len(stk)-1] != "["

for i := 0; i < len(sub)/2; i++

// 左括號出棧

stk = stk[:len(stk)-1]

reptime, _ := strconv.atoi(stk[len(stk)-1])

// 數字出棧

stk = stk[:len(stk)-1]

t := strings.repeat(getstring(sub), reptime)}}

return getstring(stk)

}func getdigits(s string, ptr *int) string

return ret

}func getstring(v string) string

return ret

}

golang 面試題(七)小公尺麵試題,字串

給出乙個字串s 僅含有小寫英文本母和括號 請你按照從括號內到外的順序,逐層反轉每對匹配括號中的字串,並返回最終的結果。注意,您的結果中 不應 包含任何括號。示例1 輸入 s abcd 輸出 dcba 示例2 輸入 s u love i 輸出 iloveu s uevoli iloveu 示例3 輸入...

小公尺麵試題 Git樹分割點

git是一種分布式 管理工具,git通過樹的形式記錄檔案的更改歷史,比如 base base a a b b 小公尺工程師常常需要尋找兩個分支最近的分割點,即base.假設git 樹是多叉樹,請實現乙個演算法,計算git樹上任意兩點的最近分割點。假設git樹節點數為n,用鄰接矩陣的形式表示git樹 ...

小公尺麵試題 手機分身,電話號碼隱藏。

小公尺麵試題 手機分身,號碼隱藏。0 9分別對應zero,one,two,nine 為保證手機撥號安全性,撥號後,存為對應的字串,並打亂順序,保證安全性。現在給定乙個字串,求最小的數字組合 例 twoone otnwoe 1212 分析 關鍵字搜尋 第一次第二次 第三次0 zero z1 one o...