【JS】有效的括號
阿新 • • 發佈:2018-11-08
給定一個只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
- 左括號必須用相同型別的右括號閉合。
- 左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "()[]{}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: "{[]}" 輸出: true
這道題目應該是個人耗時最長的了,一直沒找到思路,做完超過了3小時。
最終的解決方法用三個括號依次比對整個長字串,有相同的就替換,迴圈到沒有可替換的為止。
最後返回false或者 true。
/** * @param {string} s * @return {boolean} */ var isValid = function(s) { var arr = ['()','[]','{}']; if(s.length%2 !=0){ return false; } while((s.indexOf('()')>=0 || s.indexOf('{}')>=0 || s.indexOf('[]')>=0)){ for(var i=0;i<arr.length;i++){ console.log(arr[i]) var s=s.replace(arr[i],""); } } if(s.length<1 || s=="()" || s=="[]" || s=="{}"){ return true; }else{ return false; } };