Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.Scanner;
- public class Main {
- static char[] copy(char[] arr)
- {
- char[] cp = new char[arr.length];
- for (int i = 0; i < arr.length; i++)
- cp[i] = arr[i];
- return cp;
- }
- static boolean isGood(char[] s)
- {
- int brackets = 0;
- for (int i = 0; i < s.length; i++)
- {
- if (s[i] == ')')
- {
- brackets -= 1;
- }
- else if (s[i] == '(')
- {
- brackets += 1;
- }
- else {
- System.out.println("Error");
- }
- if (brackets < 0) return false;
- }
- return brackets == 0;
- }
- static int algo(char[] s, int index, char[] trans) {
- if (index == s.length) {
- return isGood(trans) ? 1 : 0;
- }
- if (s[index] == '?')
- {
- char[] t1 = copy(trans);
- t1[index] = ')';
- char[] t2 = copy(trans);
- t2[index] = '(';
- return algo(s, index + 1, t1) + algo(s, index + 1, t2);
- }
- else
- {
- trans[index] = s[index];
- return algo(s, index + 1, trans);
- }
- }
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- String sstr = in.next();
- char[] s = new char[sstr.length()];
- for (int i = 0; i < s.length; i++)
- {
- s[i] = sstr.charAt(i);
- }
- System.out.println(algo(s, 0, copy(s)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment