程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode--Valid Parentheses

LeetCode--Valid Parentheses

編輯:C++入門知識

LeetCode--Valid Parentheses


這個題目我采用了兩種方案,第一種方案代碼行數相對較少,但效率稍低,第二種方案參照網上的進行改進代碼行數相對多些,但效率稍高。

題目:

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.

第一種解決方案:

import java.util.HashMap;
import java.util.Map;
public class Solution {
    public boolean isValid(String s) {
        Map map=new HashMap();
        map.put(']','[');
        map.put('}','{');
        map.put(')','(');
        Stack st=new Stack();
        for(int i=0;i

第二種解決方案:

import java.util.HashMap;
import java.util.Map;


public class Solution {
    public boolean isValid(String s) {
        Stack st = new Stack();

        for (int i = 0; i < s.length(); i++) {
            Character c = s.charAt(i);

            if ((c == ']') || (c == '}') || (c == ')')) {
                if (st.empty()) {
                    return false;
                }

                Character pre = st.peek();

                switch (c) {
                case ')':

                    if (pre == '(') {
                        st.pop();
                    } else {
                        return false;
                    }

                    break;

                case '}':

                    if (pre == '{') {
                        st.pop();
                    } else {
                        return false;
                    }

                    break;

                case ']':

                    if (pre == '[') {
                        st.pop();
                    } else {
                        return false;
                    }

                    break;
                }
            } else {
                st.push(c);
            }
        }

        return st.empty() ? true : false;
    }
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved