/
javapractice
/
JavaPractice
Обзор
Документация
Войти
/
javapractice
/
JavaPractice
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
2
CI/CD
Аналитика
develop
Quiz/src/main/java/quiz/Skobki.java
67 строк
2 KB
Zexa91x0
refactoring
25 апр 2021, 11:25
25 апр 2021, 11:25
63c8a42
Код
Авторство
О чём код?
package quiz; // Генерация скобочных последовательностей import java.io.*; public class Skobki { private static final String FILE_INPUT = "C:\\Skills\\_Repositories\\YandexTest\\src\\main\\Recources\\input2.txt"; private static final String FILE_OUTPUT = "C:\\Skills\\_Repositories\\YandexTest\\src\\main\\Recources\\output.txt"; private static BufferedReader bufferedReader = null; private static BufferedWriter bufferedWriter = null; private static void init() throws IOException { bufferedReader = new BufferedReader(new FileReader(FILE_INPUT)); bufferedWriter = new BufferedWriter(new FileWriter(FILE_OUTPUT)); } private static void close() throws IOException { bufferedWriter.close(); bufferedReader.close(); } private static int readLine() throws IOException { return Integer.valueOf(bufferedReader.readLine()); } private static void writeLine(char[] IntToFile) throws IOException { bufferedWriter.write(IntToFile); bufferedWriter.newLine(); } private static void run() throws IOException { int n = 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] = ')'; } writeLine(chrs); 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) ? '(' : ')'; } writeLine(chrs); } while (true); } public static void main(String[] args) throws Exception { init(); run(); close(); } }