原理利用了棧的數(shù)據(jù)結(jié)構(gòu)。最近比較忙,如果需要JavaScript版本的話請(qǐng)告知。來個(gè)Java的吧,提供個(gè)思路,想翻譯成JavaScript也不難,就先不寫了。代碼如下:UnitTest.javapublicclassUnitTest{publicstaticvoidmain(String[]args){Checkerchecker=newChecker();Strings1="{[()()[]{}]}({[]}{}())";Strings2="{]{(){}[]}()}()}((((){}[]";System.out.println(checker.check(s1));System.out.println(checker.check(s2));}}Checker.javapublicclassChecker{privatechar[][]css={{'(',')'},{'[',']'},{'{','}'}};privatechar[]cs=null;privatechar[]stack=null;privateintindex=0;publicbooleancheck(Strings){cs=s.toCharArray();stack=newchar[cs.length];for(charc:cs)if(!isEndding(c))push(c);elseif(!isPair(pop(),c))returnfalse;if(index==0)returntrue;index=0;returnfalse;}publicvoidpush(charc){stack[index++]=c;}privatecharpop(){returnindex==0?'\0':stack[--index];}privatebooleanisEndding(charc){for(inti=0;i!=css.length;++i)if(c==css[i][1])returntrue;returnfalse;}privatebooleanisPair(charc1,charc2){for(inti=0;i!=css.length;++i)if(c1==css[i][0]&&c2==css[i][1])returntrue;returnfalse;}}UnitTest.jsvars1="{[()()[]{}]}({[]}{}())";vars2="{]{(){}[]}()}()}((((){}[]";varcss="()[]{}";varstack={};varindex=0;console.log(check(s1));console.log(check(s2));functioncheck(cs){for(vari=0;i!=cs.length;++i){varc=cs[i]if(!isEndding(c))push(c);elseif(!isPair(pop(),c))returnfalse;}if(index==0)returntrue;index=0;returnfalse;}functionpush(c){stack[index++]=c;}functionpop(){returnindex==0?'\0':stack[--index];}functionisEndding(c){console.log();for(vari=0;i!=css.length;i=i+2)if(c==css[i+1])returntrue;returnfalse;}functionisPair(c1,c2){for(vari=0;i!=css.length;i=i+2)if(c1==css[i]&&c2==css[i+1])returntrue;returnfalse;}