1. 程式人生 > >【JS】有效的括號

【JS】有效的括號

給定一個只包括 '('')''{''}''['']' 的字串,判斷字串是否有效。

有效字串需滿足:

  1. 左括號必須用相同型別的右括號閉合。
  2. 左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 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;
        }
};