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

Рекурсия (проверка на предмет соответствия закрывающих и открывающих скобок) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить и вывести на экран значения функции в зависимости от входного значения Х http://www.cyberforum.ru/cpp-beginners/thread797646.html
Вычислить и вывести на экран значения функции в зависимости от входного значения Х. заранее благодарю :sorry:
C++ Заполнение массива с клавиатуры Уважаемые программисты,может ли кто-нибудь помочь,вот код: #include <cstdlib> #include <iostream> using namespace std; #pragma once class CN { http://www.cyberforum.ru/cpp-beginners/thread797640.html
Построчное считывание из файла C++
#include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef struct { double x1; double y1; double x2; double y2;
Шаблон стека и перегрузка передачи в поток C++
Нужно написать шаблон стека с перегрузкой << и >> для ввода/вывода Внутри класса функция объявлена так: template<class Type> friend ostream& operator<<(ostream& out, const Stack<Type>&); template<class Type> ostream& operator<<(ostream& out, const Stack<Type>& S) { if (S.top == NULL) out<<"Stack is empty\n"; else
C++ OpenGL в CodeBlocks http://www.cyberforum.ru/cpp-beginners/thread797631.html
Мучаюсь с установкой OpenGL в CodeBlocks уже целый вечер. Все нервы вытрепал. Пожалуйста опишите здесь по полочкам как установить OpenGL на CodeBlocks. Со всеми ссылками для скачивания, ибо я заметил, что с разных сайтов разные файлы. Если как-то поможет сообщение CodeBlocks'а о ошибке то вот оно: ld.exe||cannot find -lopengl32.lib glut32.lib glu32.lib|
C++ Шаблон стека и перегрузка передачи в поток Нужно написать шаблон стека с перегрузкой << и >> для ввода/вывода Внутри класса функция объявлена так: template<class Type> friend ostream& operator<<(ostream& out, const Stack<Type>&); Сама функция определена так: template<class Type> ostream& operator<<(ostream& out, const Stack<Type>& S) { if (S.top == NULL) out<<"Stack is empty\n"; подробнее

Показать сообщение отдельно
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
01.03.2013, 16:58     Рекурсия (проверка на предмет соответствия закрывающих и открывающих скобок)
Цитата Сообщение от Bulding Посмотреть сообщение
Выражение состоит из строки символов и скобок - ограничителей: (), [], {}. Напишите программу, которая выполняет проверку на предмет соответствия закрывающих и открывающих скобок. Например, запрещены выражения типа (ab] или a(b[c)d]. Язык программирования с++
Например, вот так можно на C++:
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
#include <boost/spirit/include/qi.hpp>
 
#include <iostream>
#include <string>
 
namespace qi = boost::spirit::qi;
 
template <typename Iterator>
struct grammar: qi::grammar<Iterator>
{
    grammar(): grammar::base_type(text)
    {
        text = +element;
        element = qi::char_('a', 'z')
                | '(' >> text >> ')'
                | '[' >> text >> ']'
                | '{' >> text >> '}'
                ;
    }
    qi::rule<Iterator> text, element;
};
 
void parse_string(const std::string & str)
{
    typedef std::string::const_iterator iter_t;
    iter_t iter = str.begin();
    iter_t end = str.end();
    grammar<iter_t> g;
    bool r = qi::parse(iter, end, g);
    bool success = r && (iter == end);
    std::cout << "parsing of string \"" << str << "\" "
              << (success ? "succeeded" : "failed") << std::endl;
}
 
int main(int argc, char **argv)
{
    parse_string("a");
    parse_string("abc");
    parse_string("(a)");
    parse_string("(ab]");
    parse_string("[a]");
    parse_string("[ab}");
    parse_string("{a}");
    parse_string("{aaaa{");
    parse_string("a(b[c)d]");
    parse_string("abc(ddd[e]ff{ggg})zzz");
    parse_string("abc(ddd[e]ff{ggg}]zzz");
    return 0;
}
Результат:
parsing of string "a" succeeded
parsing of string "abc" succeeded
parsing of string "(a)" succeeded
parsing of string "(ab]" failed
parsing of string "[a]" succeeded
parsing of string "[ab}" failed
parsing of string "{a}" succeeded
parsing of string "{aaaa{" failed
parsing of string "a(b[c)d]" failed
parsing of string "abc(ddd[e]ff{ggg})zzz" succeeded
parsing of string "abc(ddd[e]ff{ggg}]zzz" failed
 
Текущее время: 19:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru