package test; import java.util.Scanner; public class Main16 {     public static int[] addFlag(char[] chs)     {         int[] left = new int[chs.length];         int[] list = new int[chs.length];         int leftFlag = 0;         int listFlag = 0;         int times = 1;         for(int i=0;i<chs.length;i++)         {             if(chs[i] == '(')             {                 left[leftFlag] = times;                 times++;                 leftFlag++;                 list[listFlag] = left[leftFlag-1];                 listFlag++;             }else if(chs[i] == ')')             {                 list[listFlag] = left[leftFlag-1];                 listFlag++;                 leftFlag--;             }         }         return list;     }     public static int count(int[] list, int start, int end)     {         if(start >= end)         {             return 0;         }         int ans = 0;         while(start < end)         {             if(list[start] == list[end])             {                 ans++;                 start++;                 end--;             }else{                 break;                 }         }         int temp = 1;         for(int i=ans;i>=1;i--)         {             temp *= i;         }         ans = temp;         /*******递归*******/         int copyend = end - 1;         while((copyend > start) && (list[copyend] != list[start]))         {             copyend--;         }         ans += count(list, start, copyend);         ans += count(list, copyend+1, end);         return ans;     }     public static void main(String[] args) {         Scanner scan = new Scanner(System.in);         String str = scan.nextLine();         char[] chs = str.toCharArray();         int[] list = addFlag(chs);         int ans = count(list, 0, list.length-1);         System.out.println(ans);     } }
点赞 2

相关推荐

牛客网
牛客企业服务