Skip to content

Commit

Permalink
完成括号匹配
Browse files Browse the repository at this point in the history
  • Loading branch information
miniyk2012 committed Apr 7, 2017
1 parent cb4d281 commit a0e75f3
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,14 @@ public class Stack {
public void push(Object o){
elementData.add(0, o);
}


// 如果队列已经没有值了,则抛出ArrayIndexOutOfBoundsException的异常
public Object pop(){
return elementData.remove(0);
try {
return elementData.remove(0);
} catch (Exception e) {
throw new NullStackException();
}
}

public Object peek(){
Expand All @@ -24,4 +29,15 @@ public boolean isEmpty(){
public int size(){
return elementData.size();
}

public static void main(String[] args) {
Stack s = new Stack();
s.pop();
}

public static class NullStackException extends RuntimeException {
NullStackException() {
super("Null Stack!");
}
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.github.miniyk2012.coding2017.basic.stack;

import com.github.miniyk2012.coding2017.basic.Queue;

import java.util.Arrays;
import java.util.Objects;
import java.util.*;

/**
* Created by thomas_young on 5/4/2017.
Expand Down Expand Up @@ -78,7 +76,35 @@ public static Object[] getTop(Stack s, int len) {
* @return
*/
public static boolean isValidPairs(String s){
return false;
Map<String, String> matchBrackets = new HashMap<String, String>() {{
put("{", "}");
put("[", "]");
put("(", ")");
}};

Stack stack = new Stack();
for (int i=0; i<s.length(); i++) {
String c = s.substring(i, i+1);
if (matchBrackets.keySet().contains(c)) {
stack.push(c);
} else if (matchBrackets.values().contains(c)) {
try {
String preC = (String) stack.pop();
if (matchBrackets.get(preC).equals(c)) {
continue;
} else {
return false;
}
} catch (Stack.NullStackException e) {
return false;
}
}
}
if (!stack.isEmpty()) {
return false;
} else {
return true;
}
}

public static void main(String[] args) {
Expand Down Expand Up @@ -111,5 +137,19 @@ public static void main(String[] args) {
s.push(4);
s.push(2);
System.out.println(Arrays.toString(StackUtil.getTop(s, 10)));

System.out.println((isValidPairs("[")));
System.out.println((isValidPairs("[]")));
System.out.println((isValidPairs("ad[(a{f})]db")));
System.out.println((isValidPairs("ad[(a{f))]db")));
System.out.println((isValidPairs("ad[(a{f}(saf)((afsdg)))]db")));
System.out.println((isValidPairs("ad[))]db")));
System.out.println((isValidPairs("(([[[ad[))]db")));
System.out.println((isValidPairs("(([[[ad[))]db")));
System.out.println((isValidPairs("(()")));
System.out.println((isValidPairs("()")));
System.out.println((isValidPairs("")));
System.out.println((isValidPairs("([e{d}f])")));
System.out.println((isValidPairs("([b{x]y})")));
}
}

0 comments on commit a0e75f3

Please sign in to comment.