ValidParentheses之Java实现-创新互联

一、题目

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
  Open brackets must be closed by the same type of brackets.
  Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
  Input: "()"
  Output: true
Example 2:
  Input: "()[]{}"
  Output: true
Example 3:
  Input: "(]"
  Output: false
Example 4:
  Input: "([)]"
  Output: false
Example 5:
  Input: "{[]}"
  Output: true

10年积累的做网站、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有阜城免费网站建设让你可以放心的选择与我们合作。
二、解题思路

1、利用List集合实现一个栈;
2、将字符串s转换成字符数组,并循环遍历;
3、如果字符为:"{、(、["中的一个,则存入集合中;
4、如果字符为:"}、)、]"中的一个,则取出集合中最后一个元素进行比较;
5、如能匹配上,则删除集合中最后一个元素,否则返回false;
6、最后判断集合大小是否为0,如是则返回true。

三、代码实现
public boolean isValid(String s) {
    if ("".equals(s)) {
        return true;
    } else {
        Map<Character, Character> parentheseMap = new HashMap<Character, Character>();
        parentheseMap.put(')', '(');
        parentheseMap.put(']', '[');
        parentheseMap.put('}', '{');        
        char[] sArr = s.toCharArray();
        List<Character> stackList = new ArrayList<Character>();
        for (int i = 0; i < sArr.length; i++) {
            if (sArr[i] == '(' || sArr[i] == '[' || sArr[i] == '{') {
                stackList.add(sArr[i]);
            } else {
                if (stackList.size() == 0) {
                    return false;
                } else {
                    char temp = stackList.get(stackList.size() - 1);
                    if (temp == parentheseMap.get(sArr[i])) {
                        stackList.remove(stackList.size() - 1);
                    } else {
                        return false;
                    }
                }
            }
        }
        return stackList.size() == 0 ? true : false;
    }
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网页标题:ValidParentheses之Java实现-创新互联
文章出自:https://www.cdcxhl.com/article36/esdpg.html

成都网站建设公司_创新互联,为您提供网站排名手机网站建设网站制作网站收录企业建站网站内链

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设