Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/47: Рейтинг темы: голосов - 47, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 5
1

Правильность расстановки парных скобок

23.01.2013, 23:59. Показов 8539. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с кодом, нужно проверить правильно ли расставлены скобки при помощи стека. Заранее спасибо!
---
программа должна проверять
правильность расстановки круглых (), квадратных [] и фигурных {} скобок
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2013, 23:59
Ответы с готовыми решениями:

Правильность расстановки скобок
Задана строка, состоящая из символов. На приклад «(», «)», «», «{», «}». Правила, що відкривають і...

Проверка расстановки скобок
Здравсвуйте всем я писал таск на курсы, но не прошел одну проверку.на input подается "}}{}{"...

Проверка расстановки скобок
Честно нашел в просторах интернета много решений этой задачи. Но может есть у кого то идея...

Проверка расстановки скобок
Здравсвуйте всем, сам я новенький в java. я писал таск на курсы, но не прошел одну проверку.на...

3
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
24.01.2013, 15:37 2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.util.Stack;
 
public class BracketsValidator {
 
    private Stack<Character> stack = new Stack<Character>();
    
    private boolean isOpeningBracket(char bracket) {
        return "({[".indexOf(bracket) != -1;
    }
    
    private boolean isClosingBracket(char bracket) {
        return ")}]".indexOf(bracket) != -1;
    }
 
    private boolean isPair(char opening, char closing) {
        return opening == '(' && closing == ')' || opening == '['
                && closing == ']' || opening == '{' && closing == '}';
    }
 
    public boolean validate(String input) {
        for (char c : input.toCharArray()) {
            if (isClosingBracket(c) && stack.isEmpty()) {
                return false;
            }
            if (isOpeningBracket(c)) {
                stack.push(c);
            }
            if (isClosingBracket(c)) {
                if (isPair(stack.peek(), c)) {
                    stack.pop();
                }
            }
        }
        return stack.isEmpty();
    }
    
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class BracketsValidatorTest {
 
    public static void main(String[] args) {
        
        String test = "a + (42 - b) * [wtf()] / {(2 + 2)}";
        BracketsValidator validator = new BracketsValidator();
        boolean correct = validator.validate(test);
        System.out.println("Скобки расставлены " + (correct ? "" : "не") + "правильно");
        
    }
 
}
1
2586 / 2259 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
24.01.2013, 15:51 3
а что будет при
Java
1
 String test = "a + (42 - b) * [wtf('}')] / {(2 + 2)}";
1
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
24.01.2013, 16:10 4
mutagen, ерунда будет, естественно

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Stack;
 
public class BracketsValidator {
 
    private Stack<Character> stack = new Stack<Character>();
    
    private boolean isOpeningBracket(char bracket) {
        return "({[".indexOf(bracket) != -1;
    }
    
    private boolean isClosingBracket(char bracket) {
        return ")}]".indexOf(bracket) != -1;
    }
 
    private boolean isPair(char opening, char closing) {
        return opening == '(' && closing == ')' || opening == '['
                && closing == ']' || opening == '{' && closing == '}';
    }
 
    public boolean validate(String input) {
        for (char c : input.toCharArray()) {
            if (isClosingBracket(c) && stack.isEmpty()) {
                return false;
            }
            if (isOpeningBracket(c)) {
                stack.push(c);
            }
            if (isClosingBracket(c)) {
                if (isPair(stack.peek(), c)) {
                    stack.pop();
                } else {
                    return false;
                }
            }
        }
        return stack.isEmpty();
    }
    
}
PS. если возможно, отредактируйте мой первый пост
0
24.01.2013, 16:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2013, 16:10
Помогаю со студенческими работами здесь

Проверка баланса расстановки скобок
Разработать и испытать функцию для проверки баланса парных скобок в строке, то есть количество...

Проверить правильность расстановки костяшек домино
Дан массив из 22 целых чисел из интервала от 0 до 66, представляющих собой условные обозначения...

Проверить правильность расстановки в строке скобок (баланс открывающих и закрывающих скобок)
помогите с решением задачи. Запросить у пользователя ввод значений согласно варианту. Выполнить...

Правильность расстановки скобок
Всё обыскал но никак не могу найти именно то, что мне нужно, а именно: Со всем в принципе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru