這個題目我采用了兩種方案,第一種方案代碼行數相對較少,但效率稍低,第二種方案參照網上的進行改進代碼行數相對多些,但效率稍高。
import java.util.HashMap; import java.util.Map; public class Solution { public boolean isValid(String s) { Mapmap=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) { Stackst = 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; } }