/
javapractice
/
JavaPractice
Обзор
Документация
Войти
/
javapractice
/
JavaPractice
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
2
CI/CD
Аналитика
develop
Quiz/src/main/java/quiz/Bracket.java
55 строк
1 KB
Zexa91x0
refactoring
25 апр 2021, 11:25
25 апр 2021, 11:25
63c8a42
Код
Авторство
О чём код?
package quiz; // Генерация скобочных последовательностей import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; public class Bracket { public static void main(String[] args) throws Exception { BufferedReader bufferedReader = new BufferedReader(new FileReader("input2.txt")); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("output.txt")); int n = Integer.parseInt(bufferedReader.readLine()) * 2; if (n < 2) return; char[] chrs = new char[n]; for (int i = 0; i < n / 2; i++) { chrs[i] = '('; } for (int i = n / 2; i < n; i++) { chrs[i] = ')'; } bufferedWriter.write(chrs); bufferedWriter.newLine(); do { int i = n - 1; int c = 0; while (i >= 0) { c += chrs[i] == ')' ? -1 : 1; if ((c < 0) && (chrs[i] == '(')) break; --i; } if (i < 0) break; chrs[i++] = ')'; int ind = i; for (; i < n; i++) { chrs[i] = (i <= (n - ind + c) / 2 + ind) ? '(' : ')'; } bufferedWriter.write(chrs); bufferedWriter.newLine(); } while (true); bufferedWriter.close(); bufferedReader.close(); } }