讨论/题目交流/对于力扣第 20 题的分享,共同探讨。/
对于力扣第 20 题的分享,共同探讨。

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:

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

力扣 20 题

想法:

就是根据栈操作,如果是左括号,就入栈。右括号就从栈顶匹配,只要不符合规则(什么样的右括号就匹配什么样的左括号)就返回。
代码如下,有不足的希望可以指正,然后共同学习吧。也是刚开始入门力扣。

class Solution {
    public boolean isValid(String s) {
        char[] c =s.toCharArray();
		List<Character> list = new ArrayList();
		
		for (Character d : c) {
			
			switch (d) {
			case '{':
			case '[':
			case '(':
				list.add(d);
				break;
			case '}':
				if (list.size() - 1 >= 0 && list.get(list.size() - 1) == '{') {
					list.remove(list.size() - 1);
				} else 
					return false ;
				break;
			case ']' :
				if (list.size() - 1 >= 0 && list.get(list.size() - 1) == '[') {
					list.remove(list.size() - 1);
				} else 
					return false ;
				break;
			case ')' :
				if (list.size() - 1 >= 0 && list.get(list.size() - 1) == '(') {
					list.remove(list.size() - 1);
				} else 
					return false ;
				break;
			default:
				break;
			}
		}
		return list.size() == 0 ? true : false;
        }
    }
}


展开讨论

你很强

展开全部 2 讨论