GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — javascript-data-structure/day7-bracket-balance.js at master · a90100/javascript-data-structure

Expand file tree

/

day7-bracket-balance.js

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
36 lines (32 loc) · 845 Bytes
/

day7-bracket-balance.js

Copy path

File metadata and controls

36 lines (32 loc) · 845 Bytes
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
function peek(stack) {
return stack[stack.length - 1]
}
function isBalanced(str) {
let stack = []
let OPENING = '([{'
let CLOSEING = ')]}'
for (let i = 0; i < str.length; i++) {
if (OPENING.includes(str[i])) {
stack.push(str[i])
} else if (CLOSEING.includes(str[i])) {
let top = peek(stack);
if (OPENING.indexOf(top) === CLOSEING.indexOf(str[i])) {
stack.pop();
} else {
return false;
}
}
}
return stack.length === 0
}
console.log('true cases:')
console.log(isBalanced("()"))
console.log(isBalanced("foo(aa[i], {bar: [0,12]})"))
console.log()
console.log('false cases:')
console.log(isBalanced("("))
console.log(isBalanced(")"))
console.log(isBalanced(")("))
console.log(isBalanced("(()"))
console.log(isBalanced("())"))
console.log(isBalanced("foo(3 * ((1 + 4) / 2)"))
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.