ðáçðúé ááéú åäðáìåú òãééï ìà äçæéøå úùåáä,
àðé ìà äëé îðåñä á JS
ì÷ç ìé çöé ùòä ììîåã îä öøéê åìëúåá àú äàìâåøéúí, òí èòåéåú ñéðè÷ñ ÷èðåú åèòåú áäâãøú âáåìåú äìåìàä, ùúé÷ðúé éåúø îàåçø,
áñä"ë çøâúé ôé 2 îäæîï.
àáì éåúø îòðéï àåúé äàí éù ãøê àçøú éåúø éòéìä å÷øéàä éåúø.
öøéê ìëúåá ôåð÷öéä äî÷áìú string åîçæéøä 1 àí äñåâøééí á÷ìè î÷åððéí ðëåï å- 0 àçøú.
ãåâîàåú :
You need to consider three kinds: (), [], <> and only these kinds.
Examples:
verify("---(++++)----") -> 1
verify("") -> 1
verify("before ( middle []) after ") -> 1
verify(") (") -> 0
verify("} {") -> 1 //no, this is not a mistake.
verify("<( >)") -> 0
verify("( [ <> () ] <> )") -> 1
verify(" ( [)") -> 0
÷åã HTML:
function verify(text)
{
var stack = new Array();
var myMap = new Map();
myMap.set('[' ,']');
myMap.set('(',')');
myMap.set( '<','>');
myMap.set('”', '”');
var regOpen = /[([<"]/ ;
var regClose = /[\)\]\>"]/ ;
var length= text.length-1;
var textArr= text.split("");
var pop;
console.log(length);
for (i=0;i<=length; i++ )
{
if( textArr[i].match(regOpen) )
stack.push(textArr[i]);
else if( textArr[i].match(regClose) )
{
pop = myMap.get(stack.pop());
if( pop!= textArr[i] )
return 0;
}
}
return (stack.length==0 ? 1:0);
}