knyazer

Untitled

May 6th, 2020
415
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.60 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7.     static char[] copy(char[] arr)
  8.     {
  9.         char[] cp = new char[arr.length];
  10.         for (int i = 0; i < arr.length; i++)
  11.             cp[i] = arr[i];
  12.  
  13.         return cp;
  14.     }
  15.  
  16.     static boolean isGood(char[] s)
  17.     {
  18.         int brackets = 0;
  19.         for (int i = 0; i < s.length; i++)
  20.         {
  21.             if (s[i] == ')')
  22.             {
  23.                 brackets -= 1;
  24.             }
  25.             else if (s[i] == '(')
  26.             {
  27.                 brackets += 1;
  28.             }
  29.             else {
  30.                 System.out.println("Error");
  31.             }
  32.             if (brackets < 0) return false;
  33.         }
  34.  
  35.         return brackets == 0;
  36.     }
  37.  
  38.     static int algo(char[] s, int index, char[] trans) {
  39.         if (index == s.length) {
  40.             return isGood(trans) ? 1 : 0;
  41.         }
  42.  
  43.         if (s[index] == '?')
  44.         {
  45.             char[] t1 = copy(trans);
  46.             t1[index] = ')';
  47.  
  48.             char[] t2 = copy(trans);
  49.             t2[index] = '(';
  50.  
  51.             return algo(s, index + 1, t1) + algo(s, index + 1, t2);
  52.         }
  53.         else
  54.         {
  55.             trans[index] = s[index];
  56.             return algo(s, index + 1, trans);
  57.         }
  58.     }
  59.  
  60.     public static void main(String[] args) {
  61.         Scanner in = new Scanner(System.in);
  62.  
  63.         String sstr = in.next();
  64.  
  65.         char[] s = new char[sstr.length()];
  66.         for (int i = 0; i < s.length; i++)
  67.         {
  68.             s[i] = sstr.charAt(i);
  69.         }
  70.  
  71.         System.out.println(algo(s, 0, copy(s)));
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment