您的位置:首页 > 其它

笔试题检验括弧的匹配是否正确 (){}【】《》

2015-09-19 16:49 309 查看
import java.util.Stack;

public class A {
public boolean isMatch(String s) {
Stack<Character> sc = new Stack<Character>();
char[] c = s.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == '(' || c[i] == '[' || c[i] == '{' || c[i] == '<') {
sc.push(c[i]);
} else if (c[i] == ')') {
if (sc.isEmpty()) {
return false;
} else {
if (sc.peek() == '(') {
sc.pop();
}
}
} else if (c[i] == ']') {
if (sc.isEmpty()) {
return false;
} else {
if (sc.peek() == '[') {
sc.pop();
}
}
} else if (c[i] == '}') {
if (sc.isEmpty()) {
return false;
} else {
if (sc.peek() == '{') {
sc.pop();
}
}
} else if (c[i] == '>') {
if (sc.isEmpty()) {
return false;
} else {
if (sc.peek() == '<') {
sc.pop();
}
}
}
}
if (sc.empty()) {
return true;
} else {
return false;
}
}

public static void main(String args[]) {
A a = new A();
String str = "(((520+480)*38/10)/2*((520+480)*38/10)/2){}<[]>";
boolean bool = a.isMatch(str);
System.out.println(bool);

}
}


 返回true 。。。。

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  笔试题目