標籤:
題目描述:
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.
解題思路:
Java現在不採用Stack棧了,那麼我們用ArrayList替代之。
利用ArrayList來儲存前括弧,遇到後括弧的情況就彈出ArrayList末尾資料,與之匹配。
若全部匹配,則最後是能夠完全符合的話,ArrayList應該為空白。若不為空白,則說明沒有完全符合。
代碼如下:
public boolean isValid(String s) {ArrayList<Character> list = new ArrayList<Character>();for (int i = 0; i < s.length(); i++) {if (s.charAt(i) == ‘)‘ || s.charAt(i) == ‘]‘ || s.charAt(i) == ‘}‘) {if (list.isEmpty())return false;else {char tmp = list.get(list.size() - 1);list.remove(list.size() - 1);if ((s.charAt(i) == ‘)‘ && tmp != ‘(‘)|| (s.charAt(i) == ‘]‘ && tmp != ‘[‘)|| (s.charAt(i) == ‘}‘ && tmp != ‘{‘))return false;}} else {list.add(s.charAt(i));}}return list.isEmpty();}
Java [leetcode 20]Valid Parentheses