2020秋招筆試 有效字串

2021-10-09 11:56:05 字數 1805 閱讀 7286

輸入一串字串,只包含』(』 , 『)』 , 『[』 , 『]』 , 『』 這六種字元,現要判斷字串是否有效。有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

示例

輸入:(){}

([)]

輸出:true

false

true

用棧解決即可,遍歷字串,每次遇到左括號就入棧,遇到右括號則出棧到棧頂彈出對應的左括號;

當最終遍歷完成後,若棧不為空,則為false;棧為空,則為true。

個人**

public

boolean

solute

(string str)

else

return

false;}

stack.

pop();

}else

if(c==

']')

else

return

false;}

stack.

pop();

}else

if(c==

'}')

else

return

false;}

stack.

pop();

}}}return stack.

isempty()

;}

這個**只有80%的通過率,暫時不知道原因。

leetcode題解

public

boolean

solute4

(string str)

else';

}}if(p>=0)

return

false

;return

true

;}

該題解使用陣列來替代棧的操作,每當遇到左括號時就將對應右括號入棧,然後如果遇到右括號且棧頂元素與該右括號相同則出棧,否則棧頂指標+1。但是這個寫法無法通過全部的示例,因為它只是將索引減小,但不對陣列內的元素進行彈出操作,因此當示例為 「()))" 的形式時,會返回 true ,但結果是顯而易見的 false。因此將其改回stack或者新增彈出操作。

陣列形式:彈出之後清除索引資料

public

boolean

isvalid

(string s)

else';

else

if(c==

'[')

stack[p]

=']';}

}return p>=0?

false

:true

;}

用棧實現:

public

boolean

isvalid2

(string s)

else')

;else

if(c==

'[')

stack.

push

(']');

//不符合的就填入不可能被清空的值

else

stack.

push

('0');

}}//彈出初始的棧頂元素『0』

stack.

pop();

return stack.

isempty()

;}

2020屆秋招中興筆試題

在本人堅持不懈的努力刷題下,終於發現題目的 了。leetcode題目為 49.字母異位詞分組,有興趣的同學可以對比學習。題目的大致意思是 超市賣東西,然後統計那些商品相同的組合。例如 abcd 與 bacd 是不同商品的組合,可以歸於同乙個類別 要求統計出,出現次數多於一次的商品組合類別,有助於幫助...

筆試 浪潮集團2020秋招研發卷

第1題 更新遞增1子串行的長度 num 1 cout n maxr endl system pause 通過率為91 第2題 python版本 intput 1 raw input intput 2 map int,raw input split dict1 dict2 for i in range...

2020秋招筆試 複雜異或問題

給定乙個序列an,下標從1開始直到n,定義了以下式子 現在要求下式的值 小提示 樣例解釋 這裡考察的是異或操作。首先注意到異或是支援交換律的,可將待求解的值分為兩個部分 將ai全部交換到一起求出異或值,這是由輸入序列確定的部分結果 還剩下乙個n n的餘數矩陣,它們整體異或到一起構成輸入序列個數確定的...