这是一个用于直观展示 LeetCode 第 20 题「有效的括号」算法解题过程的交互式动画应用。通过可视化的方式,帮助开发者理解栈在处理括号匹配问题中的应用。
给定一个只包括 (
,)
,{
,}
,[
,]
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的左括号匹配。
- 🖥️ 直观的动画演示:通过动画展示括号匹配的过程
- 🎮 交互式控制:可以手动控制动画播放、暂停、步进等
- 📊 栈操作可视化:清晰展示栈的入栈、出栈操作
- 🔄 多种预设案例:提供多种括号组合的案例
- 🎲 随机生成功能:可随机生成有效/无效的括号组合
- 📱 响应式设计:适配不同尺寸的屏幕
- 框架:React + TypeScript
- 构建工具:Vite
- 样式:CSS-in-JS
- 部署:GitHub Pages
- CI/CD:GitHub Actions
- Node.js (v14.0.0+)
- npm 或 yarn
npm install
# 或
yarn install
npm run dev
# 或
yarn dev
启动后访问 http://localhost:5174
npm run build
# 或
yarn build
该项目通过栈结构实现括号匹配验证:
- 遍历字符串中的每个字符
- 如果是左括号,则入栈
- 如果是右括号,则与栈顶元素匹配
- 如果栈为空或不匹配,则字符串无效
- 如果匹配,则弹出栈顶元素
- 最后检查栈是否为空,为空则有效
欢迎提交 Pull Request 或创建 Issue。
如果这个项目对你有帮助,请给它一个⭐️!