括號匹配

題目描述:給定一個由()和[ ]組成的字符串,逐個提取出()和 [ ],並且輸出來,要求時間複雜度爲O(n)。

例如:'(([]()[])[])'

結果:[ ] ( ) [ ] ( ) [ ] ( )

function bracket(str) {
    let arr = [],
        len = str.length
    for(let i = 0; i < len; i++) {
        if(str[i] === '(' || str[i] === '[') {
            arr.push(str[i])
        }
        else {
            let rear = arr.pop()
            if(rear && str[i] === ')'  && rear === '(' || str[i] === ']' && rear === '[') {
               console.log(rear)
               console.log(str[i])
            }
        }
    }
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章