棧相關筆試題

2021-10-19 12:19:40 字數 660 閱讀 3038

解題**如下:

function

smartrepeat

(templatestr)

elseif(

/^\w+\]/

.test

(rest)

)else

if(rest[0]

===']'

)// console.log(index, stack1, stack2)

}// while 結束之後, stack1 和 stack2 中肯定還剩餘 1 項。返回棧2中剩下的這一項,重複棧1中剩下的這一項的次數,組中的這個字串。

// 如果剩的個數不對,那就是使用者的問題,方括號沒有閉合

return stack2[0]

.repeat

(stack1[0]

)}let newstr =

smartrepeat

('3[2[abc]2[d]]'

) console.

log(newstr)

// abcabcddabcabcddabcabcdd

Momenta筆試題 最小棧

實現乙個最小棧,有三種操作,min 得到棧中的最小值 push 在棧頂插入乙個元素 pop 彈出棧頂元素,使這三種操作的時間複雜度都是o 1 要求 語言不限 輸入描述 第一行是乙個數q,接下來q行每行表示乙個操作,每行首先是操作op 若op 0,則輸出當前棧中的最小值 若op 1,表示push,接著...

鍊錶相關筆試題 一

1.從尾到頭列印單鏈表 方法一 可以用棧實現,遍歷鍊錶,每經過乙個結點,把該結點放入棧中,當遍歷完整個鍊錶後,從棧頂開始逐個輸出結點的值,此時輸出的結點的順序就反轉過來了 實現 void printtailtohead listnode phead while nodes.empty 方法二 用遞迴...

棧的相關面試題

完整 用乙個額外的棧存放當前棧的最小值。push 當資料棧入元素時做乙個判斷,如果元素小於等於最小棧的棧頂元素,就給兩個元素都入棧。pop 資料棧出元素時,若兩個棧頂元素相等,則兩個棧都出元素,否則只出資料棧。乙個棧入元素,乙個棧出元素。pop 出元素時,如果為空則需要將棧a元素倒到b棧。額外考慮兩...