题解 | #有效括号序列#

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

import java.util.*;

public class Solution {
    /**
     * @param s string字符串
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        Stack<Character> stk = new Stack<Character>();//创建stack对象,辅助栈

        for (int i = 0; i < s.length(); i++) {
            //charAt(i) 函数 是获取字符串中i位置的字符 str.charAt(i)的意思是第i个字符在字符串str中所占的位置
            if (s.charAt(i) == '(' ) { //当为(字符时,将匹配字符入栈
                stk.push(')');
            }

            else if (s.charAt(i) == '[' ) { //当为[字符时,将匹配字符入栈
                stk.push(']');
            }

            else if ( s.charAt(i) == '{' ) { //当为{字符时,将匹配字符入栈
                stk.push('}');
            }

            else { //三种都不满足时,判断当前字符是否与栈顶元素一样(栈非空时)
                if (stk.empty() || stk.pop() != s.charAt(i))
                    return false;
                //stk.pop();
            }
        }
        return stk.empty();
    }
}

本题总结:

1、stack <int> stk

1:stk.push(x)

压入栈---进栈

 2:  stk.pop()

出栈

 3:  stk.size()

   统计栈内有多少个元素

4: stk.empty()

它的作用跟stk.size() == 0是一样的

5: stk.top()

获取栈顶元素,但是不会弹出

2、Stack<Character> stk = new Stack<Character>(); 字符类型

charAt(i) 函数 是获取字符串中i位置的字符

str.charAt(i)的意思是第i个字符在字符串str中所占的位置

Java算法刷题 文章被收录于专栏

Java刷题

全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务