解题思路:利用栈的基本操作解题,如发现简化思路和bug欢迎大佬指点
注意事项:
参考代码:import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner ms = new Scanner(System.in);
String s = ms.next();
zhan z = new zhan(s.length());
if(isValid(s,z)) System.out.print("YES");
else System.out.print("NO");
}
public static boolean isValid(String s ,zhan z){
for (int i = 0; i < s.length(); i++) {//用一个字符变量c代替s.charAt(i)会看着更简便
if (s.charAt(i) == '(') z.push(')');
if (s.charAt(i)==')') {
if (!z.isEmpty() && z.peak() == s.charAt(i)) z.pop();
else return false;
}
}
return z.isEmpty();
}
}
class zhan{
char []data;
int top;
public zhan(int size) {
this.data =new char[size];
this.top =0;
}
public boolean isEmpty(){
if(top==0) return true;
return false;
}
public void push(char a){
data[top++]=a;
}
public char pop(){
return data[--top];
}
public char peak(){
return data[top-1];
}
}
0.0分
0 人评分
C二级辅导-统计字符 (C语言代码)浏览:545 |
C二级辅导-同因查找 (C语言代码)浏览:588 |
简单的a+b (C语言代码)浏览:537 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:889 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:916 |
WU-C语言程序设计教程(第三版)课后习题12.1 (C++代码)浏览:943 |
IP判断 (C语言代码)浏览:783 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:501 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:550 |
简单的a+b (C语言代码)浏览:434 |