function isValid(str) {
if(str=="") { return false; } var s1="",s2="",s3=""; for(var i=0;i<str.length-1;i++) { if(str=="") { return true; } if(str.charAt(i)=='('&&str.charAt(i+1)==')') { s1=str.slice(0,i); console.log("s1 : "+s1+s1.length); s2=str.slice(i+2); console.log("s2 : "+s2+s2.length); s3=s1.concat(s2); console.log("s3 : "+s3+s3.length); str=s3; console.log("str : "+str+str.length); i=0; continue; } } return false; }
물론 열린괄호 닫힌괄호 개수 비교하면 되는데 ({[]}){} 같은 꼴에 확장해보려고
보다시피 s1이 empty가 되고 s2가 ()가 되어야하는데 왜 저렇게 나오느지 모르겠다.
그리고 마지막에 str이 ()에서 empty로 괄호짝이 소거되면서 true를 리턴해야 하는데 false를 리턴한다.
그냥 스택쓰면 끝나는거아닌가요