昨晚的京东括号题,为啥我的通过率是40

import java.util.Collections;
import java.util.LinkedList;
import java.util.Scanner;

/**
 * Created by 一翎飞仙 on 2017/9/8.
 */
public class Main {
    private static int count=1;
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String s=in.next();
        LinkedList<Character> list=new LinkedList<>();
        String s1="";
        int num=0;
        int sum=1;
        for (int j=0;j<s.length();j++){
            if (s.charAt(j)=='(')
                num++;
            else
                num--;
            s1+=s.charAt(j);
            //如果s1两边对称,则直接算其尖括号的方法数
            if (num==0&&j!=0){
                Huiwen(s1,list);
                s1="";
            //相乘
                sum*=count;
                count=1;
            }
        }
        System.out.println(sum);
    }
//
    private static void Huiwen(String s,LinkedList<Character> list){
        for (int i=0;i<s.length()/2;i++)
            list.add(s.charAt(i));
        CountNum(list);
    }
//
    private static void CountNum(LinkedList<Character> list) {
        if (list.size()==0)
            return;
        int num=1;
        for (int i=0;i<list.size()-1;i++){
            if (list.get(i)==list.get(i+1))
                num++;
        }
        count*=num;
        list.removeFirst();
        CountNum(list);
    }
}


全部评论
(((())()))按你的方法算算对不对
点赞 回复 分享
发布于 2017-09-09 15:42

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务