Leetcode 20 . 有效的括号 (2022.03.14)

77 阅读1分钟
大致思路:利用栈来实现括号的匹配。

第一步:先循环遍历一下这个字符串,把每个字符都取出来。
第二步:在循环中,每取出一个字符,就要判断它是左括号还是右括号,如果是这个字符是左括号,那么就进行入栈操作;如果是右括号呢,那么你就要弹出栈顶的元素,但是是有条件的,如果栈是空的,那么一定无法匹配,如果栈顶的元素不是符合此右括号类型的左括号,那么也无法匹配。
第三步:到最后,如果没有提前结束,那么返回条件是栈为空。


以上为基本思路。

具体操作上,如何判断你的字符是括号类型呢,因为有可能是其他类型的字符,所以需要一个类似于“字典”功能的表。可以将所有的括号存入到哈希表中,且KV是一对括号。

还有一个问题。

K是左括号还是右括号 ???

经过实践验证是右括号。

如果你的K是左括号,V是右括号,那么当你匹配为右括号,你无法根据此右括号判断K,
因为V是不唯一的,但是K是唯一的,可以使用get()方法。