【JS】有効かっこ

1573 ワード

一つだけ含めると指定しました.  '('')''{''}''[' の文字列を使って、文字列が有効かどうかを判定します.
有効な文字列を満たす必要があります.
  • 左括弧は同じ種類の右括弧で閉じなければなりません.
  • 左括弧は正しい順番で閉じなければなりません.
  • 注意空の文字列は有効な文字列と考えられます.
    例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
    76/76個がテストケースによって実行される場合:280 ms
     
    解法二: やはり解答を補充しましょう.一部の問題を作ってから、この問題を見に来てもそんなに難しくないです.
    やはりstr.replaceを使って置換し、戻り値を受け取ったら、再度置換を繰り返します.
    //2018/11/17 Sat   
    var isValid = function(s) {
            var len=s.length/2;
        for(var i=0;i0 ?false:true;
    };
    76/76個がテストケースによって実行される場合:116 ms