-
function balanceBracket(s) { const data = [] const brackets = s.split(' ') const hashmapBracket = { '}': '{', ']': '[', ')': '(' } for (let bracket of brackets) { if (hashmapBracket[bracket] && hashmapBracket[bracket] === data[data.length - 1]) { data.length = data.length - 1 continue } else { data.push(bracket) } } return !data.length ? 'YES' : 'NO' } const s = '{ ( ( [ ] ) [ ] ) [ ] }' // const s = '{ [ ( ] ) }' // const s = '{ [ ( ) ] }' console.log(balanceBracket(s)) // output -> YES
-
Disini kita memilki sebuah
balanceBracket
dengan inputs
, dikarenakan kita ingin menemukan setiap element didalam string tersebut, kemudian kita akan melakukang looping sebanyak jumlah karakter input tersebut, ketika kita menggunakan looping untuk mencocokan sebuah string input berarti kompleksitas waktu nya ituO(n)
yang berarti seiring bertambahnya jumlah string waktu eksekusi juga akan ikut meningkat, dalam hal ini masih terbilang aman dikarenakan kompleksitas waktu masih terbilah efisien karenaO(n)
bukanO(n^2)
, jadi bisa di simpulkan untukbalanceBracket
kompleksitas waktu dari kodingan diatas adalahO(n)