判断括号是否匹配(力扣算法题)

上面刚说完栈的实现,我们现在来看一下栈的应用(简单)

我们来看一个题

判断括号是否匹配(力扣算法题)_第1张图片

判断括号是否匹配(力扣算法题)_第2张图片 

题目就是这样,给一组括号,看括号是否匹配,匹配的话就返回true反之则false

我们先理一下思路,如何判断?

我直接说思路,当我们遇到左括号的时候就入栈,遇到右括号就让右括号与栈顶的括号比较,看是否匹配,如果匹配则弹出栈顶元素,反之则不匹配返回false,就是这样

我们画图理解一下 

判断括号是否匹配(力扣算法题)_第3张图片

 假如是上面的括号,首先两个都是左括号都入栈,下一个就是右括号了,需要取栈顶元素比较看是否匹配

判断括号是否匹配(力扣算法题)_第4张图片

这里看到是匹配的

下面又是左括号入栈

判断括号是否匹配(力扣算法题)_第5张图片 

 下面是右括号,看是否匹配

判断括号是否匹配(力扣算法题)_第6张图片 

下面是最后一个右括号

判断括号是否匹配(力扣算法题)_第7张图片 

此时栈为空,并且字符串中的数据也比较完毕,所以这部分括号是匹配的

下面我们看一下如何实现

判断括号是否匹配(力扣算法题)_第8张图片 

如果这里有不懂栈的,可以看一下栈的实现,就是这样

主要的是思路,思路懂了写代码也就更容易一点,还有就是要画图 

你可能感兴趣的:(c语言,leetcode,算法,leetcode,算法)