括号匹配问题

功能描述:判断一个字符串中的”( )”是否配对、
输入: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? "能配对":"不能配对"));
    }

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值