題目內容
題目頁面: https://app.codility.com/programmers/lessons/7-stacks_and_queues/brackets/
解題紀錄
感覺很簡單的題目,先隨便寫一個答案
function solution(S) {
var data = S.split("")
var pair = {'[':']','{':'}','(':')'}
var queue = []
for (var i = 0; i < data.length; i++) {
var start = data[i].match(/[\{\(\[]/)
if(start != null){
queue.push(pair[start.input])
}else {
var end = queue.pop()
if(end != data[i]){
return 0
}
}
}
return 1
}
這種簡單的題目真的就是陷阱多,這應該是也要考慮到})]為開頭的狀況,要過濾掉這種CASE
function solution(S) {
//新增檢查邏輯
if(S.length % 2 == 1 || S.match(/^[\}\)\]]/) != null){
return 0
}
var data = S.split("")
var pair = {'[':']','{':'}','(':')'}
var queue = []
for (var i = 0; i < data.length; i++) {
var start = data[i].match(/[\{\(\[]/)
if(start != null){
queue.push(pair[start.input])
}else {
var end = queue.pop()
if(end != data[i]){
return 0
}
}
}
//一定要全部都有成對
if(queue.length > 0){
return 0
}
return 1
}
這種考細心度的我最吃虧了= =但是還是過了(https://app.codility.com/c/run/training2C9S74-MHH/)