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

Реализация стека/очереди для выдачи номеров пар скобок в тексте - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шифрование и дешифрование методом Цезаря http://www.cyberforum.ru/cpp-beginners/thread1571793.html
Здравствуйте. Не работает шифрование и дешифрование. Если выводить в шифровке расположение букв числами, то они отрицательные. Соответственно уже дешифрование не работает. Должно работать через массив с алфавитом. #include <iostream> #include <string> #include <conio.h> #include <fstream> #include <cstring> using namespace std;
C++ Массив: Определить количество строк упорядоченных по возрастанию Дана вещественная прямоугольная матрица. Определить: 1) Количество строк упорядоченных по возрастанию 2) Минимальный элемент, среди элементов главной и побочной диагоналей Напишите пожалуйста код этой программы с комментариями http://www.cyberforum.ru/cpp-beginners/thread1571789.html
C++ PTCHAR в std::string
Никак не могу парсить переменную Line. Пишет - выражение должно иметь тип класса PTCHAR line = wcstok_s(buffer, TEXT("\r\n"), &context); //разбываем текст на строки, используя разделители, и получаем первую строку while (line != NULL) //пока строка есть { //здесь можем что-то делать со строкой (line) size_t found = line.find_last_of("/"); // Парсим URL URLDownloadToFile(0, line,...
C++ Как реализовать тензорное произведение матриц?
Как реализовать тензорное произведение матриц?
C++ Выбор литературы http://www.cyberforum.ru/cpp-beginners/thread1571711.html
Приветствую всех, Сразу говорю, что я читал тему с литературой, но не мог выбрать для себя подходящую книгу. В общем Требуется совет с какой книги начать и почему. Я имею знания -> c#, php(основы),html,css
C++ Написать функцию, удаляющую лидирующие и заключительные пробелы и символы табуляции Написать функцию, удаляющую лидирующие и заключительные пробелы и символы табуляции Используя только библиотеку #include <stdio.h> подробнее

Показать сообщение отдельно
Epicus
15 / 15 / 10
Регистрация: 25.04.2014
Сообщений: 39
05.11.2015, 10:42     Реализация стека/очереди для выдачи номеров пар скобок в тексте
б) открывающих скобок.
(например, для текста a+(45-f(x)*(b-c)) надо напечатать: 3 17; 8 10; 12 16)
Ну тут есть несложное решение через список, но если строго требуется использовать только очереди или стеки, то можно сделать так:

Берем стек позиций открывающихся скобок и стек обычных строк.

Идем по входной строке, записываем в первый стек все открывающиеся скобки. Если встречаем закрывающуюся, то берем открывающуюся из стека и записываем их пару в строку (sprintf, например) и так, пока не закончится входная строка или не встретим новую открывающуюся скобку. В последнем случае закрываем предыдущую строку в стеке и создаем новую, пишем теперь в нее.
Ну и так далее. Вот пример (строка, только из скобок, нумерация с 1):

( ( ) ( ( ( ) ) ) )

1.
> Первый стек пустой
> Второй стек пустой

2.
> 1, 2
>

3.
> 1, 4, 5, 6
> "(2, 3)"

4.
> 1
> "(2, 3)", "(4, 9) (5, 8) (6, 7)"

5.
>
> "(2, 3)", "(4, 9) (5, 8) (6, 7)", "(1, 10)"

Распечатываем стек строк:
(1, 10), (4, 9), (5, 8), (6, 7), (2, 3)
 
Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru