Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/67: Рейтинг темы: голосов - 67, средняя оценка - 4.72
2 / 2 / 1
Регистрация: 03.11.2009
Сообщений: 227

Баланс круглых скобок

10.03.2011, 19:14. Показов 13588. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проверить, соблюдается ли в тексте баланс круглых скобок. Для каждой открывающей скобки ‘(‘ должна быть найдена соответствующая закрывающая ‘)’.

Примечание-Обрабатываемый в программе текст должен содержать несколько строк. Но массив строк не формировать, то есть в оперативной памяти хранить одну обрабатываемую строку. Оперативную память резервируем для одной строки. Вводим строку, анализируем её и на её место вводим новую строку.

Помогите люди добрые!!Со строками вообще проблема...не знаю как!!Помогите пожалуйста!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.03.2011, 19:14
Ответы с готовыми решениями:

Проверить баланс круглых скобок, используя очередь
Добрый день. Преподавателем поставлена следующая задача: дан текстовый файл с программой на алгоритмическом языке. За один просмотр...

Вывести все корректные комбинации пар круглых скобок, которые можно сформировать из n скобок
Вывести все корректные комбинации пар круглых скобок, которые можно сформировать из n скобок, которые закрываются и открываются. Количество...

Проверить правильность расположения круглых скобок
Пусть задано множество строк. Проверить правильность расположения круглых скобок. Если скобки расположыне правильно, то последовательно...

42
2 / 2 / 1
Регистрация: 03.11.2009
Сообщений: 227
18.03.2011, 00:09  [ТС]
Студворк — интернет-сервис помощи студентам
а у меня не работает(
ладно...пойду еще поробую..всем спасибо!!!)

Добавлено через 16 минут
lavan, a вф попробуйте переписать используя только просто char str[size] , gets(str)...
вообще ничего работать не будут..отчего?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
18.03.2011, 00:33
Что-то не увидел здесь одного из самых популярных вариантов...
Понимаю, что говорили делать без STL, но реализовать свой стек не является трудной задачей.
C++
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
#include <iostream>
#include <stack>
#include <string>
 
bool laysCheck(const std::string& str)
{
     std::stack<char> lays;
     for(std::string::const_iterator iter=str.begin(); 
          iter != str.end(); ++iter)
     {
          if(*iter == '(')
             lays.push(*iter);
          else if(*iter == ')' && !lays.empty())
             lays.pop();
     }
     return lays.empty();
}
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::cout<<(laysCheck(str) ? "Yes" : "No")<<'\n';
    return 0;
}
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
18.03.2011, 07:17

Не по теме:

ForEveR, ну так сделал бы чтоб сразу и квадратные, и круглые, и фигурные скобки считались :)



Добавлено через 3 минуты
Кстати, реализация неправильная - для примера введи ")"

Добавлено через 31 минуту
Как-то так:
C++
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <cstdlib>
#include <stack>
 
bool is_balanced(const char*);
bool is_opening_bracket(char);
bool is_closing_bracket(char);
char opening_bracket(char);
 
int main(int argc, char* argv[])
{
    if(argc == 1)
    {
    std::cerr << "No input" << std::endl;
    return EXIT_FAILURE;
    }
 
    for(size_t i = 1; i < argc; ++i)
    std::cout << argv[i] << ": "
          << (is_balanced(argv[i]) ? "balanced" : "unbalanced")
          << std::endl;
 
    return EXIT_SUCCESS;
}
 
bool is_balanced(const char* expr)
{
    std::stack<char> stk;
 
    for( ; *expr; ++expr)
    {
    if(is_opening_bracket(*expr))
        stk.push(*expr);
    else if(is_closing_bracket(*expr))
    {
        if(stk.empty() || stk.top() != opening_bracket(*expr))
        return false;
        else
        stk.pop();
    }
    }
 
    return stk.empty();
}
 
bool is_opening_bracket(char ch)
{
    switch(ch)
    {
    case '(':
    case '{':
    case '[':
    case '<':
    return true;
 
    default:
    return false;
    }
}
 
bool is_closing_bracket(char ch)
{
    switch(ch)
    {
    case ')':
    case '}':
    case ']':
    case '>':
    return true;
 
    default:
    return false;
    }
}
 
char opening_bracket(char ch)
{
    switch(ch)
    {
    case ')':
    return '(';
 
    case '}':
    return '{';
 
    case ']':
    return '[';
 
    case '>':
    return '<';
 
    default:
    return 0;
    }
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
nameless@nameless-desktop:~/cpp-sample$ ./cpp-sample 
No input
nameless@nameless-desktop:~/cpp-sample$ ./cpp-sample \
> "()[{<k>}(foo)bar]" \
> ")ba" \
> "ab)" \
> "(abc)" \
> "(()((()))(()))" \
> "(this{is{another}balanced[bracket<expression>for]sure})" \
> "[but(this>one<is)not]"
``()[{<k>}(foo)bar]``: balanced
``)ba``: unbalanced
``ab)``: unbalanced
``(abc)``: balanced
``(()((()))(()))``: balanced
``(this{is{another}balanced[bracket<expression>for]sure})``: balanced
``[but(this>one<is)not]``: unbalanced
nameless@nameless-desktop:~/cpp-sample$
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2011, 07:17

Перегрузка круглых скобок как ravalue
Не могу понять, как перегрузить () для того чтобы можно было использовать a(1, 2)=2; вместо a=3; ошибся, наверное не rvalue, а...

Баланс скобок
Помогите пожалуйста!!! Собственно задание: Текст в файле содержит многократно вложенные круглые скобки. Если баланс скобок соблюден,...

Баланс скобок
проверить правильность расстановки скобок, используя контейнерные типы(стек)

Баланс скобок
Люди может укажите мне на ошибку в программе по которой не находит баланс..? #include&lt;iostream.h&gt; #include&lt;string.h&gt; ...

Баланс скобок
Доброе утро, мне было задано написать программу о том, соответствует ли каждой открывающей скобке, каждая закрывающая, среди символов...


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

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru