博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]--20. Valid Parentheses
阅读量:5950 次
发布时间:2019-06-19

本文共 2001 字,大约阅读时间需要 6 分钟。

Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.

The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.

public boolean isValid(String s) {        if (s.length() % 2 != 0)            return false;        char[] characters = new char[s.length()];        int index = 0, i;        for (i = 0; i < s.length(); i++) {            if (s.charAt(i) == '(')                characters[index++] = s.charAt(i);            if (s.charAt(i) == '[')                characters[index++] = s.charAt(i);            if (s.charAt(i) == '{') {                characters[index++] = s.charAt(i);                System.out.println(index);            }            if (s.charAt(i) == ')') {                if (--index < 0 || characters[index] != '(')                    break;            }            if (s.charAt(i) == ']') {                if (--index < 0 || characters[index] != '[')                    break;            }            if (s.charAt(i) == '}') {                if (--index < 0 || characters[index] != '{')                    break;            }        }        if (i == s.length() && index == 0)            return true;        return false;    }

方法通过了,不过觉得有点笨,暂时也没想到好的,先就这样啦。LeedCode也没给我们提供详解。

找到一个写得比较好的程序,极力推荐大家不要看我的,看这个,又感觉被甩了几条街。

public boolean isValidParentheses(String s) {        Stack
stack = new Stack
(); for (Character c : s.toCharArray()) { if ("({[".contains(String.valueOf(c))) { stack.push(c); } else { if (!stack.isEmpty() && is_valid(stack.peek(), c)) { stack.pop(); } else { return false; } } } return stack.isEmpty(); } private boolean is_valid(char c1, char c2) { return (c1 == '(' && c2 == ')') || (c1 == '{' && c2 == '}') || (c1 == '[' && c2 == ']'); }

用了系统的栈,我用的数组栈。

转载地址:http://xvpxx.baihongyu.com/

你可能感兴趣的文章
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>
K8S调度之标签选择器
查看>>
JQuery选择器大全
查看>>
Gamma阶段第三次scrum meeting
查看>>
python3之装饰器修复技术@wraps
查看>>
[考试]20150606
查看>>
Javascript_备忘录5
查看>>
Can’t create handler inside thread that has not called Looper.prepare()
查看>>
敏捷开发方法综述
查看>>
Hadoop数据操作系统YARN全解析
查看>>
Django 运行报错 ImportError: No module named 'PIL'
查看>>
修改数据库的兼容级别
查看>>
Windows下同时安装两个版本Jdk
查看>>
uoj#228. 基础数据结构练习题(线段树)
查看>>
JS键盘事件监听
查看>>
ios开发周期之--(向上,向下,四舍五入)取整
查看>>
加油!
查看>>
拦截导弹问题(动态规划)
查看>>
iOS 单元测试(Unit Test 和 UI Test)
查看>>