第一题只有40%,我的思路是求连续的左括号数量,然后算阶乘。

只扫描一遍,阶乘也做了缓存处理,应该不是复杂度的原因。

public class JD_1 { private static int[] map = new int[20];   public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);  while (sc.hasNextLine()) {
            String seq = sc.nextLine();  char[] cseq = seq.toCharArray();  int cnt = 0;  int res = 1;  boolean flag = false;() for (int i = 0; i < cseq.length; i++) { if (cseq[i] == '(') {
                    flag = true;  cnt++;  } else if (cseq[i] == ')') { if (flag) {
                        res *= fib(cnt);  cnt = 0;  flag = false;  }
                }
            }

            System.out.println(res);  }

    } private static int fib(int n) { if (n == 1) return 1;  if (map[n] != 0) return map[n];  else map[n] = n * fib(n-1);  return map[n];  }
}

请问有什么问题