Leetcode刷题记(6)——有效的括号
勤劳的搬运工~
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()" 输出: true
示例 2:
输入: "()[]{}" 输出: true
解题过程:
刚开始时尝试着把所有不符合规则或所有符合规则的情况罗列出来,用多个if语句进行判断,被折磨了半小时后果断放弃了,完全理不清楚,总会有一些情况没考虑到!!!
无奈没忍住偷偷的看了一眼别人的解答:用栈!!!数据结构真的太重要了,完全没有想起来使用数据结构。
用栈:判断如果是左半边括号,直接压入栈中;如果是右半括号,则把取出栈顶元素判断与当前元素是否匹配,匹配后弹出,不匹配直接输出false;
最后遍历结束若都匹配,则栈为空,输出true。
知识点!!!
数据结构——栈的用法!!!
一点碎碎念:每天晚上两道题差不多要一个半小时,虽然花费的时间多,但真的基础太不牢了,以前学的没有多练习全还给学校了,希望现在开始追还不会太晚!加油!