题目:
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.
这个题我的解法是超越所有人的...这是我JavaScript运行速度的图:
超越最快的一小截哈哈哈哈,并且我的解法很简单.
我的方法优点在于没有使用js的库.下面就是解法
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let stack = [];
let len = 0; // 尽量把变量命名为let
let arr = s.split(''); // 这样写读取比在string里读快
for (let i = 0; i < arr.length; i++) {
let str = arr[i];
switch (str) {
case '(':
stack[len] = str;
len++;
break;
case '[':
stack[len] = str;
len++;
break;
case '{':
stack[len] = str;
len++;
break;
case ')':
if (stack[len-1] == '(')
len--;
else
return false;
break;
case ']':
if (stack[len-1] == '[')
len--;
else
return false;
break;
case '}':
if (stack[len-1] == '{')
len--;
else
return false;
break;
}
}
if (len == 0)
return true;
else
return false;
};
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。