如2[ab2[c]] -->abccabcc,
3[a2[b]] --> abbabbabb
看到這種題型第一反應是剛開始演算法學習的時候,括號匹配問題,第二反應是遞迴。
對於棧的解決方法如下:
class
solution
else
if(character.
isletter
(cur)
|| cur ==
'[')
else
collections.
reverse
(sub)
;// 左括號出棧
stk.
removelast()
;// 此時棧頂為當前 sub 對應的字串應該出現的次數
int reptime = integer.
parseint
(stk.
removelast()
);stringbuffer t =
newstringbuffer()
; string o =
getstring
(sub)
;// 構造字串
while
(reptime--
>0)
// 將構造好的字串入棧
stk.
addlast
(t.tostring()
);}}
return
getstring
(stk);}
public string getdigits
(string s)
return ret.
tostring()
;}public string getstring
(linkedlist
v)return ret.
tostring()
;}}**leetcode
這裡沒有遇到過character.isletter()和character.isdigit()方法。前者判斷指定字元是否為字母,後者判斷指定字元是否為數字。 leetcode刷題筆記 02 兩數之和
1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9,因為 nums 0 nums 1 ...
Leetcode刷題筆記
1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...
LeetCode刷題筆記
實現strstr 給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。示例 1 輸入 haystack hello needle ll 輸出 2 示例 2 輸入 haystack aaaa...