LeetCode:第20题@我的第1题

mac2024-10-03  44

题目:20、给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。

有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串

思路

先判断是否为空,若空则正确,Stack表示一个栈。Stack表示一个栈,且栈里的每个元素都是T类型的。以此类推。 new表示调用该泛型类型的构造函数,创建一个实例。

创建一个类型为字符的栈,循环遍历字符串,是(栈用push的方法push

代码

class Solution { public boolean isValid(String s) { if(s.isEmpty()) return true; Stack<Character> stack=new Stack<Character>(); for(char c:s.toCharArray() ){ if(c=='(') stack.push(')'); else if (c=='[') stack.push(']'); else if(c=='{') stack.push('}'); else if(stack.empty()||c!=stack.pop()) //若栈为不空且出栈的结果正好与当前字符c不相同 //则执行下面的返回false,否则都不执行下面的返回的false return false; } if (stack.empty()) return true; else return false; } }
最新回复(0)