文章
27
粉丝
492
获赞
10
访问
268.9k
import java.util.Scanner;
import java.util.Stack;
/**1.循环扫描字符串中的字符
* 2.遇到左括号压入栈
* 3.遇到右括号时,需要弹出栈里的元素,有两种情况不符合,一是栈为空,二是出栈的元素与当前扫描的括号不匹配.
* 4.当所有的字符扫描结束,需要判断栈是否为空,判断是不是匹配完了。
* @author 回到原点
*
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.nextLine();
char[] ch = str.toCharArray();
Stack<Character> stack = new Stack<>();
for (int i = 0; i < ch.length; i++) {//扫描字符
if (ch[i] == ')' || ch[i] == ']') { //右括号分两种情况
if (stack.isEmpty()) {
System.out.println("NO");
return;
} else if (!stack.isEmpty()) {
char temp = stack.pop();
if ((ch[i] == ']' && temp == '(') || (ch[i] == ')' && temp == '[')) {
System.out.println("NO");
return;
}
}
} else if (ch[i] == '[' || ch[i] == '(') { //左括号入栈
stack.push(ch[i]);
...
登录后发布评论
暂无评论,来抢沙发