题目
题解
代码
import java.util.*;
public class code20 {
// public static final Map<Character, Character> map = new HashMap<Character,
// Character>() {
// {
// put('{', '}');
// put('[', ']');
// put('(', ')');
// }
// };
// public static boolean isValid(String s) {
// if (s.length() > 0 && !map.containsKey(s.charAt(0))) {
// return false;
// }
// Stack<Character> stack = new Stack<Character>();
// char a[] = s.toCharArray();
// for (int i = 0; i < a.length; i++) {
// char c = a[i];
// if (stack.isEmpty() || map.containsKey(c)) {
// stack.push(a[i]);
// } else if (map.get(stack.peek()) == c) {
// stack.pop();
// } else {
// return false;
// }
// }
// return stack.isEmpty();
// }
public static boolean isValid(String s) {
char stack[] = new char[s.length() + 1];
int top = 1;
for (char c : s.toCharArray()) {
if (c == '(' || c == '[' || c == '{') {
stack[top++] = c;
} else if (c == ')' && stack[--top] != '(') {
return false;
} else if (c == ']' && stack[--top] != '[') {
return false;
} else if (c == '}' && stack[--top] != '{') {
return false;
}
}
return top == 1;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String s = sc.next();
boolean flag = isValid(s);
System.out.println(flag);
}
}
}