class CTEK {
private int maxSize;
private char[] stackArray;
private int top;
public CTEK(int max) {
maxSize = max;
stackArray = new char[maxSize];
top = -1;
}
public void push(char j) {
stackArray[++top] = j;
}
public char pop() {
return stackArray[top--];
}
public char peek() {
return stackArray[top];
}
public boolean isEmpty() {
return (top == -1);
}
}
// === ЗАДАЧА 1: Переворот строки ===
class Reverser {
private String input; //исходник
private String output; //реверс
public Reverser(String text) {
input = text;
}
public String doRev() {
int stackSize = input.length();
CTEK theStack = new CTEK(stackSize);
for(int j = 0; j < input.length(); j++) {
char ch = input.charAt(j);
theStack.push(ch);
}
output = "";
while(!theStack.isEmpty()) {
char ch = theStack.pop();
output = output + ch;
}
return output;
}
}
// === ЗАДАЧА 2: Проверка скобок ===
class BracketsChecker {
private String input;
public BracketsChecker(String in) {
input = in;
}
public void check() {
int stackSize = input.length();
CTEK theStack = new CTEK(stackSize);
for (int j = 0; j < input.length(); j++) {
char ch = input.charAt(j);
if (ch == '(') {
theStack.push(ch); // Нашли открывающую — кидаем в стек
} else if (ch == ')') {
if (!theStack.isEmpty()) {
theStack.pop(); // Нашли закрывающую и стек не пуст — убираем парную '('
} else {
// Если пришла ')', а в стеке пусто, значит закрывающая скобка лишняя
System.out.println("Результат проверки скобок: «Неправильно»");
return;
}
}
}
// Если стек в итоге пустой — всё четко. Если осталась '(' — ей не хватило пары
if (theStack.isEmpty()) {
System.out.println("Результат проверки скобок: «Правильно»");
} else {
System.out.println("Результат проверки скобок: «Неправильно»");
}
}
}
class ReverseApp {
public static void main(String[] args) {
// --- Тест задачи №1 ---
String inputStr = "HELLO";
Reverser theReverser = new Reverser(inputStr);
String outputStr = theReverser.doRev();
System.out.println("Original: " + inputStr);
System.out.println("Reversed: " + outputStr);
String bracketsStr = "((())))(";
System.out.println("Проверяем строку: " + bracketsStr);
BracketsChecker checker = new BracketsChecker(bracketsStr);
checker.check();
}
}