Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ЕЕлена
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 26
#1

Разработать функцию для проверки баланса парных скобок в строке - C++

06.04.2016, 08:52. Просмотров 275. Ответов 1
Метки нет (Все метки)

Разработать и испытать функцию для проверки баланса парных скобок в строке, то есть количество открытых скобок должно совпадать с количеством закрытых, причём необходимо отличать тип скобок – круглые, квадратные, фигурные. Функция возвращает значение типа*int равное*0*– если баланс скобок нарушен, равное*1*– если баланс скобок соблюдается, равное*-1*– если скобок в строке нет.
*
// прототип функции проверки баланса парных скобок
int balanceBrackets(char *);

Здравствуйте! помогите решить и разобраться с задачей,пожалуйста, если можно комментарии к строчкам)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2016, 08:52     Разработать функцию для проверки баланса парных скобок в строке
Посмотрите здесь:

Произвести проверку соблюдения баланса скобок C++
Программа проверки правильности скобок C++
C++ Проверка баланса скобок
C++ Разработать функцию для сортировки одномерных массивов А и В и организовать функцию для поиска элементов, которые имеются в одном экземпляре или тольк
C++ Подсчет количества парных скобок
C++ Проверка баланса скобок арифметического выражения, введенного с клавиатуры
Составить программу проверки баланса скобок арифметического выражения, введенного с клавиатуры C++
Написать рекурсивную функцию, проверяющую правильность расстановки круглых скобок в строке C++
C++ Произвести проверку соблюдения баланса скобок в выражении
Разработать программу для проверки попадания точки с координатами x и y в указанную на рисунке область C++
C++ Произвести проверку соблюдения баланса скобок вида '[', ']' в арифметическом выражении
C++ Написать функцию и программу для ее проверки для вычисления функции sin(x) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
06.04.2016, 12:35     Разработать функцию для проверки баланса парных скобок в строке #2
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
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
// Function to check whether two characters are opening
// and closing of same type.
bool ArePair(char opening,char closing)
{
    if(opening == '(' && closing == ')') return true;
    else if(opening == '{' && closing == '}') return true;
    else if(opening == '[' && closing == ']') return true;
    return false;
}
int balanceBrackets(char * exp)
{
    stack<char>  S;
  unsigned int noBrackets = 0;
    for(int i =0;i<strlen(exp);i++)
    {
        if(exp[i] == '(' || exp[i] == '{' || exp[i] == '[')
            S.push(exp[i]);
        else if(exp[i] == ')' || exp[i] == '}' || exp[i] == ']')
        {
            if(S.empty() || !ArePair(S.top(),exp[i]))
                return 0;
            else
                S.pop();
        }
    else noBrackets++;
    }
  
  if (noBrackets == strlen(exp))
    return -1;
    return S.empty() ? 1:0;
}
 
int main(int argc, char const *argv[]) {
  cout << balanceBrackets(const_cast<char*> (argv[1])) << endl;
  return 0;
}
Yandex
Объявления
06.04.2016, 12:35     Разработать функцию для проверки баланса парных скобок в строке
Ответ Создать тему
Опции темы

Текущее время: 19:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru