括號配對

codewars

Code Kata

Valid Braces

這一題
在我高中磨練邏輯期間有出現過
當時還不知道什麼是"堆疊"

當時用VB寫的解
現在回去看看真的有夠笨
雖然現在還是笨

題目連結

 

---------------------------------

function validBraces(braces){
  var L = '({[';
  var R = ')}]';  
  var ans= true;
  var arrayStacks = '' ;

  for (var i = 0 ;i<braces.length ;i++){
    if (L.indexOf(braces[i])!=-1){
      arrayStacks += braces[i];
    }
    else{
      if ((R.indexOf(braces[i])!=-1)){//遇到不是括弧直接略過
       if( (arrayStacks[arrayStacks.length-1]==L[R.indexOf(braces[i])]) && arrayStacks.length>0 ){
         arrayStacks = arrayStacks.slice(0,arrayStacks.length-1);
       }
       else{
         return false;
       }
      }
     }
  }
  
  if(arrayStacks.length==0){
    return true;
  }
  else{
    return false;
  }
}

 

---------------------------------