校历最后一天~完成实验室上周五交代的任务(一个小任务做一周...)还有一点时间。
这道题思路先按照上一道题的经验用一个object为几个符号做索引;
然后,算法嘛,无非就是巧妙地将情况归类、问题总结,如何用最简单的语言将解决办法说出来并翻译成程序语句。
刚开始我思考了一会儿加加减减的,思考什么时候可以判断为false就戛然而止。
突然我想到了堆栈!天呐,我也是学过数据结构的人...
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
var map = {
"(" : 1,
")" : -1,
"{" : 2,
"}" : -2,
"[" : 3,
"]" : -3
}
var index;
var value;
var store = [];
var count = 0;
var popstr;
for(var i=0;i<s.length;i++) {
index = s[i];
// 用map.index 取不到
value = map[index];
if(value > 0){
store.push(index);
}else{
popstr = store.pop();
if((map[popstr] + value) != 0){
return false;
}
}
}
if(store.length == 0) return true;
return false;
};
经过node调试,accept了。
看了看别人,嗯,用栈就大致对了。