括号匹配问题

时间:2022-06-07 15:47:18

功能描述:判断一个字符串中的”( )”是否配对、
输入:if(a.equals(a))
输出:true
输入:())()
输出:false

package 华为机试题;

import java.util.LinkedList;

/**
* @author Hutongling
*
* @time:2017年4月8日 下午7:48:17
*/


public class 括号配对 {

static boolean isBrackets(String string){
if(string==null || string.length()==0)
return false;
LinkedList<Character> list=new LinkedList<>();
for(int i=0;i<string.length();i++){
if(string.charAt(i)=='(')
list.push(string.charAt(i));
else
if(string.charAt(i)==')' && list.size()!=0)
list.pop();
else if(string.charAt(i)==')' && list.size()==0)
return false;
}
if(list.size()==0)
return true;
else
return false;
}


public static void main(String[] args) {
String string="()()()";
System.out.println(string + "中的括号" + (isBrackets(string)==true? "能配对":"不能配对"));
String string1="(()()()";
System.out.println(string1 + "中的括号" + (isBrackets(string1)==true? "能配对":"不能配对"));
String string2="()()())";
System.out.println(string2 + "中的括号" + (isBrackets(string2)==true? "能配对":"不能配对"));
}

}

代码结果:
()()()中的括号能配对
(()()()中的括号不能配对
()()())中的括号不能配对