- Medium
- 每日温度
- 任务调度器
- LRU 缓存
- 根据身高重建队列
- 打家劫舍
- 子集
- 颜色分类
- 最小路径和
- 不同路径
- 合并区间
- 跳跃游戏
- 最大子数组和
- 字母异位词分组
- 旋转图像
- 全排列
- 组合总和
- 在排序数组中查找元素的第一个和最后一个位置
- 搜索旋转排序数组
- 下一个排列
- 括号生成
- 删除链表的倒数第 N 个结点
- 电话号码的字母组合
- 三数之和
- 盛最多水的容器
- 最长回文子串
- 无重复字符的最长子串
- 两数相加
- Easy
- 合并二叉树
- 二叉树的直径
- 汉明距离
- 找到所有数组中消失的数字
- 比特位计数
- 移动零
- 回文链表
- 翻转二叉树
- 反转链表
- 多数元素
- 相交链表
- 环形链表
- 只出现一次的数字
- 买卖股票的最佳时机
- 二叉树的最大深度
- 对称二叉树
- 二叉树的中序遍历
- 合并两个有序链表
- 有效的括号
- 两数之和
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
有效的括号
解题思路
栈。
代码实现
const isValid = (s: string): boolean => {
type KeyType = ")" | "}" | "]";
type ValueType = "(" | "{" | "[";
const n: number = s.length;
if (n % 2 === 1) return false;
const mapObj: Record<KeyType, ValueType> = {
")": "(",
"}": "{",
"]": "[",
};
const stk: ValueType[] = [];
for (let item of s) {
if (item in mapObj) {
let top = stk.pop();
if (mapObj[item] !== top) {
return false;
}
} else {
stk.push(item as ValueType);
}
}
return !stk.length;
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论