-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbalancedBrackets.js
More file actions
53 lines (48 loc) · 1.6 KB
/
Copy pathbalancedBrackets.js
File metadata and controls
53 lines (48 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
Given a string, return true if it contains all balanced parenthesis (), curly-brackets {}, and square-brackets [].
*/
function isBalanced(string) {
// loop through string and look for closing brackets for all the opening brackets
// If it is any other closing bracket other than the last opening bracket then return false
// if string[x] is an opening bracket... keep track of them somehow
// make sure they have a closing bracket
var brackets = [];
for(var x = 0; x < string.length; x++){
// console.log(string[x]);
if(string[x] === '[' || string[x] === '(' || string[x] === '{'){
brackets.push(string[x]);
}
if(string[x] === ']' || string[x] === ')' || string[x] === '}'){
if(string[x] === ']'){
if(brackets[brackets.length-1] !== '['){
return false;
}
brackets.splice(-1,1);
// brackets.pop()
}
if(string[x] === ')'){
if(brackets[brackets.length-1] !== '('){
return false;
}
brackets.splice(-1,1);
// brackets.pop()
}
if(string[x] === '}'){
if(brackets[brackets.length-1] !== '{'){
return false;
}
brackets.splice(-1,1);
// brackets.pop();
}
}
}
if(brackets.length){
return false;
}
return true;
};
// console.log(isBalanced("(x + y) - (4)"), " Should equal:" , true);
// console.log(isBalanced("[{()}]"), ' Should equal: ', true);
console.log(isBalanced("(50)("), " Should equal: ", false);
// console.log(isBalanced("({})"), ' Should equal: ', true);
// console.log(isBalanced("({)}"), ' Should equal: ', false);