Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
leva
12 / 12 / 9
Регистрация: 12.04.2012
Сообщений: 259
1

Вывести номер процедуры и ее уровень

15.02.2018, 22:17. Просмотров 754. Ответов 2
Метки нет (Все метки)

Задание просто, но что-то голова не варит, а сдать нужно сейчас уже)

Нужно получить номер скобок и ее уровень вложенности. Это все нужно и для открывающей и для закрывающей)
[x][y] { - x номер y - уровень
Код
Есть строка : "{}{{}{}}"
Ответ для этого примера:
1 1 {
1 1 }
2 1 {
3 2 {
3 2 }
4 2 {
4 2 }
2 1 }
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2018, 22:17
Ответы с готовыми решениями:

Двумерный массив, процедуры. Вывести номер первой1|последней2 строки3|столбца4, содержащего только положительные элементы
1. Дана матрица размера 5 x 10. Вывести номер ее первой1|последней2 строки3|столбца4, содержащего...

Последовательности через процедуры и функции на уровень 4
Помогите пожалуйста решить задачку: Ввести две последовательности по k чисел. Найти в каждой...

Хранимые процедуры-превышен уровень вложенности
Здравствуйте! Помогите, пожалуйста, разобраться со вложенностью процедур. В базе данных есть...

Как сделать чтобы уровень змейки и уровень яблока совпадал?
Здравствуйте. Как сделать чтобы уровень змейки и уровень яблока совпадал?

Работа со звуком более или менее низкий уровень. Получить уровень сигнала микрофона
Доброго дня или ночи. Вобщем товарищи дело такое. предо мной стоит задача определять уровень шума...

2
New man
15.02.2018, 23:14
  #2

Не по теме:

Так пишите.

0
Quaternion
4 / 4 / 4
Регистрация: 16.02.2018
Сообщений: 6
16.02.2018, 09:00 3
Лучший ответ Сообщение было отмечено leva как решение

Решение

Если известно, что строка состоит только из символов '{' и '}', а также все "открывающие" символы "закрываются":
C++
1
2
3
4
5
6
7
8
9
10
11
void ParseThisLinePlease(string const &line) {
    int count = 0, level = 0;
    vector<char> states(line.length(), 0);
    auto Print = [](int n, int l, char c) { cout << n << ' ' << l << ' ' << c << endl; };
    for (char const &c : line) {
        if (c == '{')
            Print(++count, ++level, c);
        else
            Print(&(*find(states.rend() - count, states.rend(), 0) = 1) - states.data() + 1, level--, c);
    }
}
http://cpp.sh/2clua
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2018, 09:00

Не могу вывести третий уровень меню
Здравствуйте я совсем недавно в битриксе, пришел на этот сайт после прошлых программистов, по какой...

Css вывести 3й уровень выпадающего меню
Взываю к отцам css! Пользуясь справочником набросал себе выпадающее меню, всё вроде хорошо, вот...

Вывести уровень успеваемости в текстовом виде
Программа просит ввести уровень вашей успеваймости по десяти бальной шкале. В зависимости от...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.