【LeetCode】20. Valid Parentheses

更新於 2024/11/24閱讀時間約 2 分鐘

前幾天看別人直播刷題,心血來潮打開很久沒動的leetcode試試,挑了一題當初面試沒寫出來的題目。嗯...我那時才剛碰資料結構,知道要用stack寫卻沒實作過任何東西,現在有工作經驗後再來寫,看看會不會有不一樣的想法。

至於語言的話,較熟練一點還是Javascript或是Java,方便點還是先用Javascript,順便練練ES6的一些特性。

Javascript版本

稍微更改一點寫法,改動後的效率似乎都差不多,只是有點懷疑如果一開始stack是空的,pop()怎麼沒有出問題,總之還是過了測資。

Javascript執行結果

既然都做了,不如另外改寫成java試試?反正頂多是語法不一樣吧?於是我照著上面的程式碼照搬了一版過來。

Java版本

執行結果...錯了!而錯的地方正是剛剛存疑的點: stack裡面還是空的狀態,pop()出大事啦!

試著加了幾個條件排出特例,依然還是不行。

突然腦中閃過一個想法!如果javascript有在pop()時對空值做特別處理,那麼我同樣在java試試不讓它視為錯誤不就好了?結果就是以下版本:

測資過了,數據有時候誇張的好,不過在例外寫死個不是對應符號的'0'是有點偷吃步的感覺。當然,實際開發如果這樣寫,接手維護的人只會滿頭問號吧~

avatar-img
13會員
64內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Err500 的其他內容
即將到職滿一周年,平時每幾個月就會記錄一下期間內做了什麼、學了什麼,算是給自己的總回顧...
輸入畫面 為什麼要做驗證? 因為作為設計者,永遠不該預設使用者會乖乖照設計者的意思輸入。
前言 目前手邊工作上,與其說是開發新功能,大多時候比較常是優化原有的功能,順便修正以前留下來的bug,因此解讀前人的程式碼、留不留註解、如何讓程式寫的更"乾淨"一點等常見的問題一件一件浮上檯面。
剛結束公司的內部訓練,對我自己來說,收穫最多的部分並不是來自課程內容,反而是與一同參加課程,來自各部門、不同學經歷的同事們的交流閒談,看看從不同背景、不同角度看待同一件事情,會出現哪些自己從來沒發現過的盲點。
僅就自身的經驗作為心得記錄,並不適用於每個人,請斟酌參考。 畢業於理工科系,最初接觸的程式語言不是現在人人推前後端都能做的javascript,也不是初學易懂好上手應用廣的python,而是如同傳統企業核心用COBOL、Java,理工科入門語言--fortran。
兩年前第一次在誠品打開斜槓青年這本書,當時是為了找日本語gogogo系列以及python相關書籍,經過暢銷書促銷區便隨手拿起翻翻。在那之前早在youtube上看過各式各樣的說書,花了兩小時讀完後,有種相見恨晚之感,因為發現作者許多思維與自己相似,並且以更精煉、更明確的字句闡述,也串聯起以往在不同領域
即將到職滿一周年,平時每幾個月就會記錄一下期間內做了什麼、學了什麼,算是給自己的總回顧...
輸入畫面 為什麼要做驗證? 因為作為設計者,永遠不該預設使用者會乖乖照設計者的意思輸入。
前言 目前手邊工作上,與其說是開發新功能,大多時候比較常是優化原有的功能,順便修正以前留下來的bug,因此解讀前人的程式碼、留不留註解、如何讓程式寫的更"乾淨"一點等常見的問題一件一件浮上檯面。
剛結束公司的內部訓練,對我自己來說,收穫最多的部分並不是來自課程內容,反而是與一同參加課程,來自各部門、不同學經歷的同事們的交流閒談,看看從不同背景、不同角度看待同一件事情,會出現哪些自己從來沒發現過的盲點。
僅就自身的經驗作為心得記錄,並不適用於每個人,請斟酌參考。 畢業於理工科系,最初接觸的程式語言不是現在人人推前後端都能做的javascript,也不是初學易懂好上手應用廣的python,而是如同傳統企業核心用COBOL、Java,理工科入門語言--fortran。
兩年前第一次在誠品打開斜槓青年這本書,當時是為了找日本語gogogo系列以及python相關書籍,經過暢銷書促銷區便隨手拿起翻翻。在那之前早在youtube上看過各式各樣的說書,花了兩小時讀完後,有種相見恨晚之感,因為發現作者許多思維與自己相似,並且以更精煉、更明確的字句闡述,也串聯起以往在不同領域
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
◆ 句子(sentence)的定義:小寫字母拼成的單字所組成的字串,每個單字間由單一個空白字元進行分隔。 ◆ uncommon的定義:在單一句子內只出現一次,並且沒有出現在另外一句中。 ◆ 給兩個句子s1跟s2,回傳所有符合uncommon定義的單字,可以為任意順序。
Thumbnail
請在表1查找每個月份和國家的交易數量及其總金額、已批准交易的數量及其總金額(如表2),結果可以以任何順序返回。 請使用下列三種語法查找: 1. MS SQL Server 查詢 2. MySQL 查詢 3. Pandas 查詢
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
題目會給定一個字串s,裡面都是由() [] {}打散交錯而成。 問我們給定的輸入字串s 是不是合法括弧自串,也就是所有的右括弧都在左括弧後面,而且可以兩兩相消。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
◆ 句子(sentence)的定義:小寫字母拼成的單字所組成的字串,每個單字間由單一個空白字元進行分隔。 ◆ uncommon的定義:在單一句子內只出現一次,並且沒有出現在另外一句中。 ◆ 給兩個句子s1跟s2,回傳所有符合uncommon定義的單字,可以為任意順序。
Thumbnail
請在表1查找每個月份和國家的交易數量及其總金額、已批准交易的數量及其總金額(如表2),結果可以以任何順序返回。 請使用下列三種語法查找: 1. MS SQL Server 查詢 2. MySQL 查詢 3. Pandas 查詢
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
題目會給定一個字串s,裡面都是由() [] {}打散交錯而成。 問我們給定的輸入字串s 是不是合法括弧自串,也就是所有的右括弧都在左括弧後面,而且可以兩兩相消。